做什么register_shutdown_function
?
我对它的用法和它的作用一无所知。我知道您可以使用它并与自定义错误处理程序很好地配合,但我不知道要通过它,如何处理它等等。
有人可以为这个编码新手用最简单的术语解释一下吗?
做什么register_shutdown_function
?
我对它的用法和它的作用一无所知。我知道您可以使用它并与自定义错误处理程序很好地配合,但我不知道要通过它,如何处理它等等。
有人可以为这个编码新手用最简单的术语解释一下吗?
这实际上是一个非常简单的功能。所以你有一个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(),则处理将完全停止,并且不会调用其他已注册的关闭函数。
*更新
它的一个很好的用途是当您经常使用exit()
php.ini 中调用的函数时。
例如:
<?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
每次都在 exit 之前调用该函数。您在一开始就注册了它,现在您知道如果您退出或脚本完成,那么您的函数就会被调用。
现在我的关机功能当然没用了;但如果您需要清理东西(即关闭打开的文件句柄,保存一些持久性数据等),它会变得很有用
register_shutdown_function
注册一个关闭钩子,这是脚本关闭时要执行的函数。它以回调函数为参数,即要执行的函数。
我建议您查看该函数的文档。