weixin_慕的地1468772
充电_ing

你看一下代码,在设置james为空之前,老师是实例化了一个名为james的构造函数的,因为构造函数优先执行所以在james没被设置为空时,就已经输出一次了。之后因为james设置为空,所以最后才触发了析构函数,提示james不被使用了。
qq_寂寞先森_0
只要你创建了对象就会调用构造函数 包括你传参数时 参数为对象也会调用,当程序运行遇到大括号时就会隐式调用析构函数 并不一定两者次数会一样
慕盖茨0059382
可以这么理解。
析构函数的作用:用于在撤销对象前,完成一些清理工作,比如:释放内存等。
qq_Z神魔_0
浏览器是不识别\n(在cmd是换行)的,要在浏览器中换行请用'<br />'换行,构造函数,析构函数分别是在对象创建,和对象销毁是被调用,至于堆和栈是你在申请内存的的时候用到,对象销毁不会自动释放内存,所以你就要在析构函数里面写上释放内存的代码
夜雨未央
你太纠结,等带大神解答,同问
SAGEGSDAGESE
析构函数,在实例化的时侯会被自动调用,你实例化了两个对象,会调用两次析构函数,这理解是对的。
对于代码的是幕客网提供的编辑器,在你输入内容的左上角有代码语言可以选择,选择了对应的语言就会根据语言提供高亮显示效果。

Ms_lisa
弄反了,是这个对象结束时自动用析构函数,输出$name属性只有为了看到这函数被调用,不然是看不到任何输出的
boyisli
B类和A类的构造函数不会执行,如果要执行父类的构造函数,需要在子类中 parent::__construct(); 来调用父类的构造函数
全民工作狂
一个对象被析构之后就不存在了,所以不可能再调用一次它的析构函数。
$james=null;之后,之前被james这个变量引用的那个对象没人在使用了,所以就被释放,也就是调用一次析构。jordon的对象还被jordon这个变量引用,所以它在最后程序退出时才被释放,所以在From now on James will not be used.这条语句之后调用析构函数,没有所谓的“后进先出”。
csbin
php本身作为弱类型语言是不支持重载的,可以用_call() 魔术方法来实现间接重载。(调用了不存在的方法就会自动调用_call() 方法),php是支持重写的
谭谭谭
CTODOWN
TeddyBear