如果我已经实例化了一个对象,它是否有可能在php关闭之前触发方法? 示例
class foo{
public function sayBye(){
echo 'bye';
}
}
$obj = new foo();
$obj2 = new foo();
die();
有没有办法可以自动触发sayBye功能? (换句话说,代码会输出“byebye”)
答案 0 :(得分:4)
答案 1 :(得分:2)
如何在析构函数中调用sayBye()
?
答案 2 :(得分:1)
如果我已经实例化了一个对象,它是否有可能在php关闭之前触发方法?示例
有。有关详细信息,请查看__destruct()。但请注意,这不可靠:如果您的脚本包含die()
,未捕获的异常,致命错误,则__destruct()
将不被叫。
你可以使用它,但明智地使用它;)
编辑:当您致电__destruct( )
时,系统会显示exit;
。尽管如此,警告仍然适用于其他情况。
答案 3 :(得分:0)
我能看到的最简单的方法是向你的班级添加一个析构函数。
class foo{
public function sayBye(){
echo 'bye';
}
public function __destruct(){
$this->sayBye();
}
}
这会怎么做?当脚本执行完成或未设置($ object)时,您将在__destruct()中执行代码。它可能不适用于die(),因为这将在脚本完成之前匆忙停止脚本。