如何确定PHP脚本处于终止阶段?

hak*_*kre 7 php interpreter shutdown

PHP中是否有任何函数/全局变量返回脚本的当前状态(如runnning,终止)?

或者是通过利用来设置此状态的唯一方法register_shutdown_function()

该函数看起来不灵活,因为已经注册的关闭函数可以用它覆盖.而当用户中止连接关机功能得到执行,这是不是我要找的明确,我不想引入太多的限制.

有没有其他register_shutdown_function()选择?或者如果没有,如何处理该功能的缺点?

UPDATE

只是为了澄清:我不是在寻找连接状态(例如connection_aborted()),而是寻找PHP脚本的运行状态(运行,终止).函数以了解有关我已经知道的连接状态的更多信息,但是脚本的当前状态如何?脚本是否已经被终止并且是因为那个而被销毁的对象?

UPDATE2

为了进一步澄清,我仍然没有寻找连接状态, 而是关于运行状态的可比性.它应该在CLI中工作,它没有任何连接状态,因为没有与执行代码相关的TCP连接 - 更好地说明我正在寻找什么.

hak*_*kre 4

在阅读了大部分 PHP 源代码后,我得出的结论是,即使这种状态在经验层面上存在,它们也不会真正以标志或变量的形式存在于解释器中。

例如,有关抛出异常的代码决定各种变量是否可能。

因此,问题的答案是否定的。

到目前为止,我能找到的最好的解决方法是为此设置一个全局变量,该变量在注册的关闭函数中设置。但 PHP 的标志似乎并不真正可用。

<?php

register_shutdown_function(function() {$GLOBALS['shutdown_flag']=1;});

class Test {
    public function __destruct() {
        isset($GLOBALS['shutdown_flag']) 
            && var_dump($GLOBALS['shutdown_flag'])
            ;
    }
}

$test = new Test;

#EOF; Script ends here.
Run Code Online (Sandbox Code Playgroud)