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

Kar*_*rma -1 php

我测试的一类,而开发我的应用程序,就像任何其他快速懒法-TWEAK我做了一个echo

function __construct(){
   parent::__construct();
   echo "yaba daba doo"; 
   exit();
}
Run Code Online (Sandbox Code Playgroud)

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

function __destruct(){
   echo "ends here"; 
   exit();
}
Run Code Online (Sandbox Code Playgroud)

有趣的是,即使有一个exitin __construct,它仍然执行__destruct!

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

__destruct 当对象没有更多类的引用时调用.

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

这是一个PHP错误吗?因为,IMO脚本不应该再进一步了?

Ber*_*rak 5

一切都在手册中.

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