现在的位置: 首页 -> PHP学习 -> 巧用register_shutdown_function判断php程序是否执行完

巧用register_shutdown_function判断php程序是否执行完

2016-12-05 23:49评论数 1 ⁄ 被浏览 2354 views+

php中的异常捕获没有java的强大,有些情况下,需要知道某段php程序业务是否正常执行完,可以用register_shutdown_function函数来辅助实现。掌握此函数,对php学习又提高了一层。


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


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



php范例参考与解析:


<?php


register_shutdown_function('myFun'); //放到最上面,不然如果下面有致命错误,就不会调用myFun了。

$execDone = false; //程序是否成功执行完(默认为false)


/**

 ********************* 业务逻辑区*************************

 */

$tas = 3;

if($tas == 3)

{

  new daixiaorui();

}


/**

 ********************* 业务逻辑结束*************************

 */

$execDone = true; //由于程序由上至下执行,因此当执行到此后,则证明逻辑没有出现致命的错误。


function myFun()

{

  global $execDone;

  if($execDone === false)

  {

    file_put_contents("E:/myMsg.txt", date("Y-m-d H:i:s")."---error: 程序执行出错。\r\n", FILE_APPEND);

    /******** 以下可以做一些处理 ********/

  }

}


 

文章出自:http://www.daixiaorui.com/read/232.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

分享到:

目前有 1 条评论  @我要评论

  1. 1楼hezi : 2016-12-10 11:24:24 评论说: @回复

    打日志也可以用register_shutdown_function。

您的每一个评论都是对我的一份支持

 博客二维码

昵称 *

邮箱 *