#40705 [Asn]: Iterating within function moves original array pointer

From: Date: Mon, 19 Mar 2007 19:59:31 +0000
Subject: #40705 [Asn]: Iterating within function moves original array pointer
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-110528@lists.php.net to get a copy of this message
ID: 40705 Updated by: ashnazg@php.net Reported By: avb@php.net Status: Assigned Bug Type: Arrays related Operating System: Irrelevant PHP Version: 5.2.1 Assigned To: dmitry New Comment: Tested this example against the 5.2.1 zipfile from php.net on WinXP and the problem does occur. Also tested it against the 5.2 snapshot (php5.2-win32-200703191630.zip) from php.net, on WinXP, and the problem seems to still exist. Previous Comments: ------------------------------------------------------------------------ [2007-03-06 13:19:09] dmitry@php.net The same as http://bugs.php.net/bug.php?id=40509 ------------------------------------------------------------------------ [2007-03-03 12:31:20] avb@php.net Description: ------------ If an array is passed by value to the function and is iterated over within said function, the "internal pointer" of the original array is moved. Reproduce code: --------------- function doForeach($array) { foreach ($array as $k => $v) { // do stuff } } $foo = array('foo', 'bar', 'baz'); doForeach($foo); var_dump(key($foo)); Expected result: ---------------- int(0) (returned by versions prior to 5.2.1) Actual result: -------------- NULL (returned by version 5.2.1 and current 5.2 snapshot) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40705&edit=1

« previous php.bugs (#110528) next »