#27073 [Opn->Sus]: Strange behaviour after extending interface Iterator wo adding anything new

From: 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

« previous php.bugs (#54792) next »