register_shutdown_function 使用及注意事项
该文章迁移自作者的旧博客站点。
源地址:http://fenying.blog.163.com/blog/static/10205599320148288433799/。
源地址:http://fenying.blog.163.com/blog/static/10205599320148288433799/。
PHP 中的 register_shutdown_function 函数可以用来注册一个“在脚本结束时运行的函数”。
用法很简单:
<?php
register_shutdown_function('goodbye');
function goodbye() {
echo 'goodbye';
}
# output: goodbye
可以用对象方法:
<?php
class A {
public k() {
echo __METHOD__;
}
}
$a = new A;
register_shutdown_function([$a, 'k']);
# output: A::k
可以用 PHP 5.3 开始支持的 Lambda 表达式:
<?php
register_shutdown_function(function() {
echo 'goodbye';
});
# output: goodbye
用 PHP 5.3 开始支持的类 __invoke 魔法方法:
<?php
class A {
public function __invoke() {
echo 'goodbye~';
}
}
$a = new A;
register_shutdown_function($a);
# output: goodbye
但是要注意的是:
- 当程序由于 exit 和未处理的异常、错误结束时,不会触发该函数。
- 可以多次调用该函数注册多个退出函数,执行顺序与注册顺序一致
comments powered by Disqus