Edit report at https://bugs.php.net/bug.php?id=60161&edit=1

 ID:                 60161
 Comment by:         ni...@php.net
 Reported by:        ni...@php.net
 Summary:            Implementing an interface extending Traversable is
                     order dependent
 Status:             Open
 Type:               Bug
 Package:            Scripting Engine problem
 PHP Version:        5.4.0beta2
 Block user comment: N
 Private report:     N

 New Comment:

Yes, exactly. That's what I was trying to do when I encountered the issue.


Previous Comments:
------------------------------------------------------------------------
[2011-11-02 17:16:29] johan...@php.net

You mean for a type hint which says "traversable and having that function"?  
That might indeed be a valid reason I didn't think about ..

------------------------------------------------------------------------
[2011-11-02 14:44:55] ni...@php.net

@johannes: How could you then hint that a class must be Traversable in some way 
(either Iterator or Aggregate)? Or shouldn't that be possible at all?

------------------------------------------------------------------------
[2011-11-02 12:21:47] johan...@php.net

Actually we should forbid extending Traversable. This should only only only be 
used by internal classes (Iterator, iteratorAggregate or classes providing the 
C get_iterator hooks)

------------------------------------------------------------------------
[2011-10-28 18:45:18] ni...@php.net

Description:
------------
When implementing an interface which extends Traversable together with one of 
the concrete Traversable implementations (i.e. Iterator or IteratorAggregate) 
the latter must be named first in order to not throw an error.

Compare:
http://codepad.viper-7.com/OJt8XN
http://codepad.viper-7.com/1AnU5Z

Responsible code:
http://lxr.php.net/xref/PHP_5_4/Zend/zend_interfaces.c#zend_implement_traversable



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60161&edit=1

Reply via email to