gpt4 book ai didi

php - register_shutdown_function() 和 die()

转载 作者:可可西里 更新时间:2023-10-31 22:14:07 26 4
gpt4 key购买 nike

如果我的脚本在 register_shutdown_function() 中被 die() 取消了,我能以某种方式检查吗? ?

像这样:

register_shutdown_function('shutdown');

die('Calling die()');

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

注意:在我的网站上,我使用 Smarty。所以也许检查一下,是否调用了 $smarty->display() 或类似的东西?

最佳答案

有点……但您不一定喜欢它的完成方式。

因为没有钩子(Hook)可以让你检查 die 是否被调用,你将不得不以某种方式伪造它。假设您无法触及对 die 的所有调用,那么只剩下一个选项:默认设置一些表示“die was called”的状态,并仅在在你的脚本的最后,当你知道你将在 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(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com