ID: 50681 User updated by: israel at toxinworks dot com Reported By: israel at toxinworks dot com Status: Bogus Bug Type: Class/Object related Operating System: RedHat EL5 PHP Version: 5.2.12 New Comment:
Hello, if not a bug it certainly is a very undesirable effect, I don't see why the assignment operator should pass a reference instead of a copy. Best regards, Israel Previous Comments: ------------------------------------------------------------------------ [2010-01-06 20:23:45] j...@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php ------------------------------------------------------------------------ [2010-01-06 19:15:15] israel at toxinworks dot com Description: ------------ PHP 5 does not copy object from array[ndx] to a new array entry, instead it seems to pass a reference to the original. Reproduce code: --------------- function fetchData() { // return array of objects } $arr = fetchData(); $newNdx = count($arr); $arr[$newNdx] = $arr[0]; // create copy of first object $arr[$newNdx]->description = 'Change description'; Expected result: ---------------- The result is that $arr[0]->description will also have changed when we modified $arr[$newNdx]->description, therefor not copying, but more like creating a reference to the original. This happens only in PHP 5, not 4. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50681&edit=1