PHP中__construct()和__destruct()的有趣行为

时间:2012-08-20 11:02:53

标签: php

我正在开发我的应用程序时测试一个类,就像任何其他快速懒惰的方法一样,我在

中做了echo
function __construct(){
   parent::__construct();
   echo "yaba daba doo"; 
   exit();
}

现在,在经过几次测试之后,我想到检查这个类是否已完全编译,因此我写道:

function __destruct(){
   echo "ends here"; 
   exit();
}

有趣的是,即使exit中有__construct,它仍然会执行__destruct

根据我的知识退出'杀死'这个过程,不是吗?

当对象没有更多类的引用时,将调用

__destruct

这是否意味着,exit(0)不会在优先级上杀死进程?

这是一个PHP错误吗?因为,IMO脚本不应再继续了吗?

1 个答案:

答案 0 :(得分:5)

全部都在the manual

  

即使使用exit()停止脚本执行,也会调用析构函数。在析构函数中调用exit()将阻止剩余的关闭例程执行。