#34998 [Opn->Asn]: zend.ze1_compatibility_mode doesn't implict clone when passed in array

From: Date: Thu, 27 Oct 2005 13:36:48 +0000
Subject: #34998 [Opn->Asn]: zend.ze1_compatibility_mode doesn't implict clone when passed in array
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-87134@lists.php.net to get a copy of this message
ID: 34998 Updated by: iliaa@php.net Reported By: jason at jasonjustman dot com -Status: Open +Status: Assigned Bug Type: Scripting Engine problem Operating System: * PHP Version: 5CVS-2005-10-27 (snap) -Assigned To: +Assigned To: dmitry Previous Comments: ------------------------------------------------------------------------ [2005-10-27 10:14:07] jason at jasonjustman dot com PHP Version 5.1.0RC4-dev Oct 27 2005 08:24:52 ------------------------------------------------------------------------ [2005-10-27 10:12:02] jason at jasonjustman dot com Description: ------------ Again, with zend.ze1_compatibility_mode, it fails to properly clone objects when calling as an argument for the array() function. This BC break is getting annoying... Reproduce code: --------------- <? $single_container = array(); $double_container = array(); class base_object {}; $x = new base_object; $x->value = 5; $single_container[1] = $x; $double_container[1] = array($x); $x->value = 10; $single_container[2] = $x; $double_container[2] = array($x); $x->value = 15; $single_container[3] = $x; $double_container[3] = array($x); print_r($single_container); print_r($double_container); Expected result: ---------------- //single Array ( [1] => base_object Object ( [value] => 5 ) [2] => base_object Object ( [value] => 10 ) [3] => base_object Object ( [value] => 15 ) ) //double, values are correct Array ( [1] => Array ( [0] => base_object Object ( [value] => 5 ) ) [2] => Array ( [0] => base_object Object ( [value] => 10 ) ) [3] => Array ( [0] => base_object Object ( [value] => 15 ) ) ) Actual result: -------------- //single Array ( [1] => base_object Object ( [value] => 5 ) [2] => base_object Object ( [value] => 10 ) [3] => base_object Object ( [value] => 15 ) ) //double - values are incorrect Array ( [1] => Array ( [0] => base_object Object ( [value] => 15 ) ) [2] => Array ( [0] => base_object Object ( [value] => 15 ) ) [3] => Array ( [0] => base_object Object ( [value] => 15 ) ) ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34998&edit=1

« previous php.bugs (#87134) next »