当前位置:首页 > PHP教程 > php应用 > 列表

怎么利用register_shutdown_function判断php程序是否执行完

发布:smiling 来源: PHP粉丝网  添加日期:2018-06-01 10:18:37 浏览: 评论:0 

register_shutdown_function函数的用法:当php脚本运行结束后,会回调一个您指定的函数里面的逻辑。(注意,以下两种情况不会执行回调函数:1.程序有语法错误;2.register_shutdown_function函数前,发生了致命错误,所以下面例子,我将register_shutdown_function放到了程序的最上面。)

还有一种应用场景就是:要做一个消费队列,因为某条有问题的数据导致致命错误,如果这条数据不处理掉,那么整个队列都会导致瘫痪的状态,这样可以用以下方法来解决。即:如果捕获到有问题的数据导致错误,则在回调函数中将这条数据处理掉就可以了。

php范例参考与解析:

  1. register_shutdown_function('myFun'); //放到最上面,不然如果下面有致命错误,就不会调用myFun了。 
  2.  
  3. $execDone = false; //程序是否成功执行完(默认为false) 
  4.  
  5. /** 
  6.  
  7. ********************* 业务逻辑区************************* 
  8.  
  9. */ 
  10.  
  11. $tas = 3; 
  12.  
  13. if($tas == 3) 
  14.  
  15.  
  16. new daixiaorui(); 
  17.  
  18.  
  19. /** 
  20.  
  21. ********************* 业务逻辑结束************************* 
  22.  
  23. */ 
  24.  
  25. $execDone = true; //由于程序由上至下执行,因此当执行到此后,则证明逻辑没有出现致命的错误。 
  26.  
  27. function myFun() 
  28.  
  29.  
  30. global $execDone
  31.  
  32. if($execDone === false) 
  33.  
  34.  
  35. file_put_contents("E:/myMsg.txt"date("Y-m-d H:i:s")."---error: 程序执行出错。\r\n", FILE_APPEND); 
  36.  
  37. /******** 以下可以做一些处理 ********/ 
  38.  
  39.  

Tags: register_shutdown_function

分享到: