#27073 [Opn]: Strange behaviour after extending interface Iterator wo adding anything new
| From: | helly@php.net | Date: | Thu, 05 Feb 2004 16:34:53 +0000 |
| Subject: | #27073 [Opn]: Strange behaviour after extending interface Iterator wo adding anything new | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-54465@lists.php.net to get a copy of this message | ||
ID: 27073
Updated by: helly@php.net
Reported By: andrey@php.net
Status: Open
Bug Type: Zend Engine 2 problem
-Operating System: linux
+Operating System: *
-PHP Version: 5CVS-2004-02-04
+PHP Version: 5.0.0b3
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[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