Edit report at https://bugs.php.net/bug.php?id=62262&edit=1
ID: 62262 Updated by: [email protected] Reported by: gen dot work at gmail dot com Summary: RecursiveArrayIterator does not implement Countable -Status: Verified +Status: Closed Type: Bug Package: SPL related Operating System: Windows XP, Ubuntu 10.04 PHP Version: 5.3.13 -Assigned To: +Assigned To: nikic Block user comment: N Private report: N New Comment: This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. For Windows: http://windows.php.net/snapshots/ Thank you for the report, and for helping us make PHP better. Fixed in https://github.com/php/php-src/commit/fed1f2d12447227947bb8c6ba27eca45f244f498 Previous Comments: ------------------------------------------------------------------------ [2012-06-08 23:34:52] [email protected] Reproduced on 5.4.1. The problem is probably that ArrayIterator implements Countable only *after* RecursiveArrayIterator already inherited from it (see http://lxr.php.net/xref/PHP_TRUNK/ext/spl/spl_array.c#1978). Fixing should be as simple as moving that macro a few lines up :) ------------------------------------------------------------------------ [2012-06-08 09:05:16] gen dot work at gmail dot com Description: ------------ The RecursiveArrayIterator class does not implement Countable interface, although it extends ArrayIterator. Test script: --------------- $it = new \ArrayIterator(array(1, 2, 3)); $rit = new \RecursiveArrayIterator($it); var_dump($it instanceof \Countable); var_dump($rit instanceof \Countable); Expected result: ---------------- bool(true) bool(true) Actual result: -------------- bool(true) bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62262&edit=1
