0

在重新分配变量之前是否需要清空变量?

例如,我有一个对象“用户”。

$random_user = new User();

如果我声明了几个 $random_users,对象将不会保留它的旧值,它会被完全重写,对吗?

4

3 回答 3

5

每次重新声明 $random_user 时,该值将被完全覆盖:

$random_user = new User();
$random_user = new User(); // entirely different object
$random_user = 10; // now an integer
于 2012-12-25T01:14:57.567 回答
2

是的,您可以用新值“覆盖”变量。所有旧数据都将被遗忘。例如:

$var = 1;
echo $var; // Will output 1
$var = 2; // Overrules $var with 2, 1 will be dropped entirely
echo $var; // Will output 2

放入变量中的对象也是如此。

于 2012-12-25T01:14:34.643 回答
1

是的,您不需要在重新分配之前清空变量,只需重新分配它们,没有的对象refCount将被 php Garbage Collection 销毁。

$random_user = new User();
$random_user = new User(); 
$random_user = new User(); // the first two User object will be destroyed by GC
于 2012-12-25T01:18:17.237 回答