#27073 [Com]: Strange behaviour after extending interface Iterator wo adding anything new
| From: | unread at pisem dot net | Date: | Fri, 21 Oct 2005 09:17:09 +0000 |
| Subject: | #27073 [Com]: Strange behaviour after extending interface Iterator wo adding anything new | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-86850@lists.php.net to get a copy of this message | ||
ID: 27073
Comment by: unread at pisem dot net
Reported By: andrey@php.net
Status: Suspended
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 5.0.0b3
New Comment:
googlik.com <a href=http://googlik.com>googlik.com</a>
sxrv.net <a
href=http://sxrv.net/dr.htm>dr</a>
Previous Comments:
------------------------------------------------------------------------
[2004-02-05 11:34:53] helly@php.net
This is something we may fix later but for now the following is
enough:
class FubarProblem implements Iterator, NewIterator {
public function next(){}
public function key(){}
public function current(){}
public function hasMore(){}
public function rewind(){}
}
As you see here the Iterator interface is inherited first so that the
checks are done in the correct order.
------------------------------------------------------------------------
[2004-02-05 08:07:19] andrey@php.net
No. Do you experience it?
------------------------------------------------------------------------
[2004-02-05 07:57:27] sniper@php.net
are you sure it's not intentional? :)
------------------------------------------------------------------------
[2004-02-05 07:54:29] andrey@php.net
I am still experiencing the problem :
andrey@poohie:~/test> php -v
PHP 5.0.0RC1-dev (cli) (built: Feb 4 2004 17:26:46)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.0-dev, Copyright (c) 1998-2004 Zend Technologies
andrey@poohie:~/test> php gg.php
PHP Fatal error: Class FubarProblem must implement interface
Traversable as part of either Iterator or IteratorAggregate in Unknown
on line 0
------------------------------------------------------------------------
[2004-01-28 08:51:04] andrey@php.net
Description:
------------
See the code attached :
class FubarOK has no problem implementing Iterator. interface
NewIterator just extends Iterator and adds nothing, and here comes the
fun - an error message when FubarProblem tries to implement
NewIterator.
Reproduce code:
---------------
<?php
class FubarOk implements Iterator {
public function next(){}
public function key(){}
public function current(){}
public function hasMore(){}
public function rewind(){}
}
interface NewIterator extends Iterator {
}
class FubarProblem implements NewIterator {
public function next(){}
public function key(){}
public function current(){}
public function hasMore(){}
public function rewind(){}
}
?>
Actual result:
--------------
PHP Fatal error: Class FubarProblem must implement interface
Traversable as
part of either Iterator or IteratorAggregate in Unknown on line 0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27073&edit=1