说明: register_shutdown_function [已关闭]

php
2022-08-30 19:06:11

有什么作用?register_shutdown_function

我对它的用法和作用一无所知。我知道你可以使用它,并与自定义错误处理程序很好地配合,但我不知道要通过它做什么,如何处理它,等等。

有人可以用最简单的术语为这个编码新手解释它吗?


答案 1

这实际上是一个非常简单的功能。所以你有一个php脚本:

<?php
  echo "Here is my little script";

  function endScript(){
       echo "My little Script has finished";
  }

  register_shutdown_function('endScript');

?>

基本上,发生的事情是你的脚本运行,当它完成时,因为我们添加了这一行,它将调用函数endScript并最终输出。register_shutdown_function('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

当然,我的关机功能已经毫无用处了。但是如果你需要清洁东西(即。关闭打开的文件句柄,保存一些持久性数据等)


答案 2

register_shutdown_function注册一个 shutdown hook,这是一个在脚本关闭时要执行的函数。它采用回调函数作为参数,即要执行的函数。

我建议您查看该函数的文档


推荐