ID: 27395 Updated by: [EMAIL PROTECTED] Reported By: jamesn at tocquigny dot com -Status: Assigned +Status: Bogus Bug Type: Scripting Engine problem Operating System: * PHP Version: 4CVS, 5CVS (2004-02-25 Assigned To: zeev New Comment:
Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Thank you for your interest in PHP. See bug #20993 (where you seem to have got the example too..) Previous Comments: ------------------------------------------------------------------------ [2004-02-25 13:39:51] [EMAIL PROTECTED] Wrong test, this was the one: <?php function theFunction($arg) { $arg[0] = 2; } // Reference on array index $arr1 = array (1); $reference1 =& $arr1[0]; var_dump($reference1); var_dump($arr1); theFunction($arr1); var_dump($reference1); var_dump($arr1); echo "--------\n"; // Reference on array $arr2 = array (1); $reference2 =& $arr2; var_dump($reference2); var_dump($arr2); theFunction($arr2); var_dump($reference2); var_dump($arr2); ?> ------------------------------------------------------------------------ [2004-02-25 12:02:02] jamesn at tocquigny dot com Description: ------------ There appears to be a problem with php that doesn't allow arrays to be passed by value. The fix appears to be something similar to: http://bugs.php.net/bug.php?id=6417 if (PZVAL_IS_REF(*p)) { SEPARATE_ZVAL(p); } else { zval_add_ref(p); } It would appear that that logic is missing in one place or another. I could not track it down myself. Code similar to this appears to be copy/pasted in various places. Reproduce code: --------------- $array = array(1); // This line makes the call to theFunction() act as if passed by ref.? $reference =& $array[0]; echo $array[0], '<br>'; theFunction($array); echo $array[0], '<br>'; function theFunction($array) { $array[0] = 2; } Expected result: ---------------- you should get 1 and 1 Actual result: -------------- instead you get 1 and 2! ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27395&edit=1