ID: 37231 Updated by: [EMAIL PROTECTED] Reported By: espiao at gmail dot com -Status: Open +Status: Bogus Bug Type: Arrays related Operating System: Debian PHP Version: 5.1.2 New Comment:
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 OBject behaviour has changed from PHP4 to PHP5, please catch up on the manual. Previous Comments: ------------------------------------------------------------------------ [2006-04-28 05:54:09] espiao at gmail dot com I'm using a monkey code to solve this: $myObjectArray = array(); foreach ($myObject->objects as &$item) $myObjectArray[] = copy $item; This code as an solution, but is really ugly. I belive that is as real bug. ------------------------------------------------------------------------ [2006-04-28 05:46:32] espiao at gmail dot com Description: ------------ I'm using an array of objects and when I copy the array to an another array structure this will referencing, not copying. I tried to use copy() statement, but it works only to objects, off-course. Soorry by bad english. Reproduce code: --------------- class slaveObject { public $singleVar; public __construct($mySingleVar) { $this->sigleVar = $mySingleVar; } } class mainObject { public $objects = array(); public __construct() { $this->objects[] = new slaveObject('Example1'); $this->objects[] = new slaveObject('Example2'); $this->objects[] = new slaveObject('Example3'); } } $myObject = &new mainObject(); $myObjectArray = $myObject->objects; print_r($myObject->objects); $myObjectArray[0]->singleVar = 'Example4'; print_r($myObject->objects); print_r($myObjectArray); Expected result: ---------------- Array( [0] => slaveObject ( [singleVar] => Example1 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) Array( [0] => slaveObject ( [singleVar] => Example1 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) Array( [0] => slaveObject ( [singleVar] => Example4 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) Actual result: -------------- Array( [0] => slaveObject ( [singleVar] => Example1 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) Array( [0] => slaveObject ( [singleVar] => Example4 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) Array( [0] => slaveObject ( [singleVar] => Example4 ) [1] => slaveObject ( [singleVar] => Example2 ) [2] => slaveObject ( [singleVar] => Example3 ) ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=37231&edit=1