php – register_shutdown_function()和die()

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – register_shutdown_function()和die()脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我的脚本在 register_shutdown_function()中被die()取消了,我可以以某种方式检查吗?

像这样的东西:

register_shutdown_function('shutdown');

die('Calling die()');

function shutdown()
{
    if (???)
    {
        // Script was canceled by die()
    }
}

注意:在我的网站上,我使用Smarty.所以也许检查,如果$smarty-> display()被调用或类似的东西?

解决方法

有点……但你不一定喜欢它是如何完成的.

由于没有钩子允许你检查是否有人被叫,你必须以某种方式伪造它.假设您无法触及所有死亡调用,那么只留下一个选项:设置一些认情况下表示“die被调用”的状态,并且只在脚本的最末端删除该状态,当您知道要去早先没有死的退出.

“设置一些状态”听起来像全局变量一样可疑,这应该是最后的手段,所以让我们使用状态的常量:

register_shutdown_function('shutdown');
if (condITion) die('Calling die()');

// since we reached this point,die was not called
define('DIE_NOT_CALLED',true);

function shutdown()
{
    if (!defined('DIE_NOT_CALLED'))
    {
        // Script was canceled by die()
    }
}

See it in action.

脚本宝典总结

以上是脚本宝典为你收集整理的php – register_shutdown_function()和die()全部内容,希望文章能够帮你解决php – register_shutdown_function()和die()所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。