ID: 31926 Updated by: [EMAIL PROTECTED] Reported By: gms08701 at yahoo dot com -Status: Open +Status: Feedback Bug Type: SPL related Operating System: FreeBSD 5.3 PHP Version: 5.0.3 Assigned To: helly New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2005-02-12 18:56:22] gms08701 at yahoo dot com I forgot to enter the results in my previous entry -> $ php -f z.php bool(true) bool(true) bool(true) ------------------------------------------------------------------------ [2005-02-12 18:52:19] gms08701 at yahoo dot com On what OS, are you trying your my example on?? Unfortunately, I dont have the knowledge on installing php on FreeBSD (I normally install it via the port). Im currently investigating if I can overcome this. But I was tinkering with the script this morning. -- $array = array(0); class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator { function hasChildren() { return (is_array($this->current())); } function getChildren() { return new self($this->current()); } } $it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); while($result = $it->valid()) { var_dump($result); $it->next(); } echo "\n\n"; while($result = (bool)each($array)) { var_dump($result); } -- Notice how the 1st while loop is returning (bool)TRUE *twice*, while the 2nd loop is returning (bool)TRUE *once*. $it->valid() should return (bool)FALSE the second time it was run. Shouldn't it??? ------------------------------------------------------------------------ [2005-02-11 20:56:07] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip Works fine here. ------------------------------------------------------------------------ [2005-02-11 03:10:21] gms08701 at yahoo dot com Description: ------------ Trying to create a RecursiveArrayIterator class, using currently available SPL classes. Its generating this error -> php in free(): warning: chunk is already free Apparently it works on win2k -> http://marc.theaimsgroup.com/?l=php-general&m=110807956115501&w=2 Reproduce code: --------------- <?php $array = array(0 => array('world')); class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator { function hasChildren() { return (is_array($this->current())); } function getChildren() { return new self($this->current()); } } $it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); foreach($it as $key => $val) { var_dump($key, $val); } ?> Expected result: ---------------- $ php -f z.php int(0) string(5) "world" Actual result: -------------- $ php -f z.php int(0) string(5) "world" php in free(): warning: chunk is already free ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31926&edit=1
