From: le...@php.net Operating system: PHP version: Irrelevant Package: SPL related Bug Type: Bug Bug description:IteratorIterator inheritance problems
Description: ------------ IteratorIterator has a method `seek` that matches the signature for implementing SeekableIterator, but it doesn't implement the interface. Also, subclasses of IteratorIterator do not inherit the seek method. This breaks the rules for inheritance. I'm not sure how to propose fixing it at this point. This should have been caught before being released. Like much of the SPL, this was not properly thought out and tested. Test script: --------------- $iterator = new IteratorIterator( new EmptyIterator() ); var_dump($iterator instanceof SeekableIterator); var_dump(method_exists($iterator, 'seek'); $iterator = new NoRewindIterator( new EmptyIterator() ); var_dump(method_exists($iterator, 'seek'); Expected result: ---------------- bool(true); bool(true); bool(true); Actual result: -------------- bool(false); bool(true); bool(false); -- Edit bug report at https://bugs.php.net/bug.php?id=63507&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=63507&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=63507&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=63507&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=63507&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=63507&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=63507&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=63507&r=needscript Try newer version: https://bugs.php.net/fix.php?id=63507&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=63507&r=support Expected behavior: https://bugs.php.net/fix.php?id=63507&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=63507&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=63507&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=63507&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=63507&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=63507&r=dst IIS Stability: https://bugs.php.net/fix.php?id=63507&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=63507&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=63507&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=63507&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=63507&r=mysqlcfg