PHP如何在不更新以前的值的情况下为对象分配新值
这是对象的代码:PHP如何在不更新以前的值的情况下为对象分配新值,php,arrays,object,Php,Arrays,Object,这是对象的代码: $a = new stdClass(); $a->value = 'key'; $array[] = $a; $array[] = $a; $a->value = 'key2'; $array[] = $a; print_r($array); 这是数组的代码 $a = array("value" => "key"); $array[] = $a; $array[] = $a; $a['value'] = 'key2'; $array[] = $a; prin
$a = new stdClass();
$a->value = 'key';
$array[] = $a;
$array[] = $a;
$a->value = 'key2';
$array[] = $a;
print_r($array);
这是数组的代码
$a = array("value" => "key");
$array[] = $a;
$array[] = $a;
$a['value'] = 'key2';
$array[] = $a;
print_r($array);
对象的输出:
Array
(
[0] => stdClass Object
(
[value] => key2
)
[1] => stdClass Object
(
[value] => key2
)
[2] => stdClass Object
(
[value] => key2
)
)
阵列的输出:
Array
(
[0] => Array
(
[value] => key
)
[1] => Array
(
[value] => key
)
[2] => Array
(
[value] => key2
)
)
当$a
是一个对象时,它将$array
中已有的值更新为key2
,但当$a
是一个数组时,它只更新最后一个值。如何使对象的行为类似于数组,并且只更新最后一个值
谢谢。PHP对象是自动更新的,因此如果您更新最后一个对象,它将更新所有内容。因此,只需使用,即可克隆您的对象,例如
$array[] = clone $a;
//^^^^^ See here
可能重复的