register_shutdown_function
做了什么?
我对它的使用及其作用一无所知。 我知道你可以使用它并且很好地适应自定义错误处理程序,但我不知道该通过它,该怎么做,等等。
有人可以用这个编码新手的最简单的术语来解释它吗?
答案 0 :(得分:30)
这实际上是一个非常简单的功能。所以你有一个PHP脚本:
<?php
echo "Here is my little script";
function endScript(){
echo "My little Script has finished";
}
register_shutdown_function('endScript');
?>
基本上会发生什么,你的脚本会运行,当它完成时因为我们添加了这行register_shutdown_function('endScript');
,它会调用函数endScript并最终输出My little script has finished
。
在脚本执行完成或调用exit()之后注册要执行的回调。可以对register_shutdown_function()进行多次调用,并且每个调用的顺序与注册时的顺序相同。如果在一个已注册的关闭函数中调用exit(),则处理将完全停止,并且不会调用其他已注册的关闭函数。
*更新
很有用的是当你经常在php中使用名为exit()
的函数时。
例如:
<?php
function endScript(){
echo "My little Script has finished";
}
register_shutdown_function('endScript');
$result = some_intricate_function()
if($result == 0){
exit();
}
$result = some_other_intricate_function()
if($result == 0){
exit();
}
/* and this keeps reoccurring */
?>
现在请注意,即使您多次调用exit,也不必在每次退出之前调用endScript
函数。您在开始时注册了它,现在您知道如果您退出或脚本完成,则调用您的函数。
现在我的关机功能当然没用了;但是如果你需要清理东西(例如,关闭打开文件句柄,保存一些持久数据等),它会变得有用。
答案 1 :(得分:1)
register_shutdown_function
注册一个关闭钩子,这是一个在脚本关闭时执行的函数。它将回调函数作为参数,这是要执行的函数。
我建议您查看函数documentation。