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