【发布时间】:2013-12-06 14:44:51
【问题描述】:
当我在 PHP 5.3 中将对象存储到会话中,然后尝试更改其属性时,它们在会话数组中也发生了变化。为什么会这样?请解释一下!
我的代码:
<?php
class Z {
public $val;
}
session_start();
$z = new Z();
$z->val = 10;
$_SESSION['z'] = $z;
$z->val++;
print_r($_SESSION);
?>
结果:
Array ([z] => Z Object ( [val] => 11 ) )
【问题讨论】:
-
手册 php.net/manual/en/language.oop5.references.php 中解释了这一点以及许多其他内容