对象引用赋值
对象引用赋值,什么时候调用析构函数
对象引用赋值,见截图
当对象不会再被调用的时候,会触发析构函数
3.6 对象引用的基本概念
$jams1=$james
$james2=&$james
对象的引用用于访问对象的属性和方法,$james,$james1和$james2都是对象的引用
$james和$james1是对象的两个独立的引用
$james2是$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用
什么时候会调用析构函数?
当这个对象的所有引用被null以后
当把变量设置为null,可以触发析构函数的调用
对象不会再被使用的时候,才会触发析构函数
对象引用赋值图释
&是取址符,&$james表示变量$james在内存中的地址。$james=null表示它的值为空,也就是在内存中没有地址了。所以$james=null;$james1=&$james就是相当于取到了一个空的地址,也就是一个空值,没有用到$james就调用析构函数。
对象引用赋值 区别
正常情况下,析构函数是在程序执行完毕之后,才会执行,当把对象赋值为空的时候,析构函数可以被提前调用
对象引用赋值
1如果不加&符号,james=null,触发析构函数,不影响james1这个对象的使用,但是这时想提前出发析构函数,就必须把james和james1都赋值null才会提前出发哦;
2如果加&符号,想提前出发析构函数,把james和james1只需要其中一个赋值为null即可,相当于他俩其中一个为null时,james和james1两个对象都被销毁了
当对象不再被调用的时候,会触发析构函数__destruct()
对象的引用:
$james2 = &$james
$james2相当于$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用