第一种情况:
$james1 = $james; // 独立的两个变量引用同样的对象。
$james = null; // 销毁一个变量$james,另外一个$james1变量还在运行,因为这两个变量指向的是同一对象,所以不触发析构函数。
第二种情况:
$james2 = &$james; // 两个变量绑定在一起引用同样的对象。
$james = null; // 销毁一个变量$james2,另外一个被绑定在一起的$james2变量同样被销毁了,对象调用完毕,触发析构函数
$james1 = $james; // 独立的两个变量引用同样的对象。
$james = null; // 销毁一个变量$james,另外一个$james1变量还在运行,因为这两个变量指向的是同一对象,所以不触发析构函数。
第二种情况:
$james2 = &$james; // 两个变量绑定在一起引用同样的对象。
$james = null; // 销毁一个变量$james2,另外一个被绑定在一起的$james2变量同样被销毁了,对象调用完毕,触发析构函数
2016-03-23
$james = null这里讲的有点水。
可能有人会误解成这一句就是为了触发析构函数的功能。
这里的实际意义应该是$james对象被强制清除(等于$james对象运行结束),此时就会触发析构函数。
比如:
$james = null;// $james对象被清除,对象运行结束,触发析构函数
echo $james->name; // 这里调用$james对象已经无效了,因为$james对象已经被清除。
可能有人会误解成这一句就是为了触发析构函数的功能。
这里的实际意义应该是$james对象被强制清除(等于$james对象运行结束),此时就会触发析构函数。
比如:
$james = null;// $james对象被清除,对象运行结束,触发析构函数
echo $james->name; // 这里调用$james对象已经无效了,因为$james对象已经被清除。
2016-03-22
已采纳回答 / dayu_
<...code...>上面为一个例子:类中包含一个 $a 值为 'c',实例化后将其值赋值给一个变量,然后用变量调用类方法,在类中进行函数间调用。在面向对象编程中属性可以调用方法么?按照你说的...
2016-03-18