ID: 20993 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Verified +Status: Suspended Bug Type: Variables related Operating System: Any PHP Version: 4.0CVS-2002-12-13 New Comment:
This bug has a lot to do with the bug reports mentioned below. http://bugs.php.net/bug.php?id=6417 http://bugs.php.net/bug.php?id=7412 http://bugs.php.net/bug.php?id=15025 As a workaround, you can write as following to avoid this issue. function theFunction($array) { $array = unserialize(serialize($array)); $array[0] = 2; } Previous Comments: ------------------------------------------------------------------------ [2002-12-13 12:50:26] [EMAIL PROTECTED] Verified with 4.2.3 ------------------------------------------------------------------------ [2002-12-13 12:42:22] [EMAIL PROTECTED] Verified and added testcase to CVS ------------------------------------------------------------------------ [2002-12-13 12:01:33] [EMAIL PROTECTED] I create an array an then a reference to an element of that array. Then the array is passed to a function (by value!) which changes the value of the element. After that, the global array has also another value. I would expect this behaviour if I passed the array by reference but I do not. <?php $array = array(1); $reference =& $array[0]; echo $array[0], '<br>'; theFunction($array); echo $array[0], '<br>'; function theFunction($array) { $array[0] = 2; } ?> ------------------------------------------------------------------------ [2002-12-13 12:00:37] [EMAIL PROTECTED] I create an array an then a reference to an element of that array. Then the array is passed to a function (by value!) which changes the value of the element. After that, the global array has also another value. I would expect this behaviour if I passed the array by reference but I did not. <?php $array = array(1); $reference =& $array[0]; echo $array[0], '<br>'; theFunction($array); echo $array[0], '<br>'; function theFunction($array) { $array[0] = 2; } ?> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=20993&edit=1