了解PHP中的register_shutdown_funcion

Posted roverliang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解PHP中的register_shutdown_funcion相关的知识,希望对你有一定的参考价值。

(php 4, PHP 5, PHP 7)
register_shutdown_function — Register a function for execution on shutdown
执行PHP文件的时候,php会拉起一个进程或者线程。当这个进程或者线程执行完毕、或者异常中断,或使用exit()、die() 函数中断的时候,就调用register_shutdown_function 中定义的函数。我认为这个功能更类似于钩子,这个函数建立在PHP的线程或者进程的监控之上。

可以通过下面的例子清晰的看到该函数的作用:

<?php
header("content-type:text/html;chaset=utf-8");

register_shutdown_function(‘user_shutdown‘);
register_shutdown_function(‘user_shutdown_2‘);

function user_shutdown()
{
echo "<font color=‘red‘>hello world</font>";
echo "<br/>";
}

function user_shutdown_2()
{
echo "<font color=‘orange‘>Are You OK</font>";
echo "<br/>";
}

echo 11111;
echo ‘<br/>‘;
echo 22222;
echo ‘<br/>‘;

class Demo
{
public function __construct()
{
register_shutdown_function(array($this, ‘user_shutdown_3‘));
}

public function getName()
{
echo "Hello China<br/>";
}

public function user_shutdown_3()
{
echo "I‘m class shutdown method<br/>";
}


}

$DemoClass = new Demo();
$DemoClass->getName();

执行该文件,最后的结果如下:

11111
22222
Hello China
hello world
Are You OK
I‘m class shutdown method

由此我们可以得出,在一个进程或者线程之上可以注册多个register_shutdown_function 函数。并且可以在类中注册该函数。类中该函数必须对外部暴露,必须使用public关键字修饰。






















































以上是关于了解PHP中的register_shutdown_funcion的主要内容,如果未能解决你的问题,请参考以下文章

了解“最好编程语言”PHP 必知的 16 个编程法则

PHP面向对象魔术方法基本了解

PHP原生类反序列化

PHP读取目录树的实现方法分析_php技巧 - PHP

PHP中类的自动加载

PHP中类的自动加载