为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道为什么实例化对象后,析构函数也被调用了

如果我就这么写的话  输出 构造  析构  可是我并没有销毁对象啊 为什么析构函数背调用了

class Car {
  function __construct() {
      print "构造 \n";
  }
  function __destruct() {
      print "析构 \n";
  }
}
$car = new Car();

正在回答

2 回答

如果你在$car = new Car();后面打上echo “hello”;

你会发现浏览器打印的是  构造  hello  析构 

为什么不是 构造 析构 hello?

原因是php页面执行完请求后,内存中就销毁它了,同时这个页面创造的对象就会被销毁

对象被销毁,不就自动调用析构函数了?

5 回复 有任何疑惑可以回复我~
#1

qq_Young_Foreve_03924380 提问者

谢谢 我看明白了
2016-09-09 回复 有任何疑惑可以回复我~
#2

足迹666

谢谢你的解释,但是我想进一步问:PHP代码最终都会执行完,那岂不是每个析构函数最终都会运行???
2016-11-28 回复 有任何疑惑可以回复我~
#3

下雨何 回复 足迹666

好久没登,还是回应一下,是最终都会运行
2017-02-23 回复 有任何疑惑可以回复我~

当PHP代码执行完毕以后,会自动回收与销毁对象...应该是这样吧

0 回复 有任何疑惑可以回复我~
#1

qq_Young_Foreve_03924380 提问者

不明白是什么意思。能不能解释的详细一下
2016-09-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我想知道为什么实例化对象后,析构函数也被调用了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信