<?php
class test
{
var $str;
function test()
{
if(version_compare(phpversion(),"5.0","<"))
{
echo "i am here";
register_shutdown_function(array(&$this, "__destruct"));
}
}
function add($str){
$this->str.=$str;
}
function __destruct()
{
echo $this->str;
}
}
function aaa()
{
echo "aaa";
}
register_shutdown_function("aaa");
$hTest = new test();
$hTest->add("a");
$hTest->add("b");
$hTest->add("c");
?>如上,类内的__destruct并没有执行,这是为何?
有什么问题吗?
<?php
class test
{
var $str;
function test()
{
if(version_compare(phpversion(),"5.0","<"))
{
echo "i am here<br>";
register_shutdown_function(array(&$this, "__destruct"));
}
}
function add($str){
$this->str.=$str;
echo "now i am :".$this->str."<br>";
}
function __destruct()
{
echo "destruct<br>";
var_dump($this->str);
}
}
function aaa()
{
echo "out function<br>";
}
register_shutdown_function("aaa");
$hTest = new test();
$hTest->add("a");
$hTest->add("b");
$hTest->add("c");
?>输出:
i am here
now i am :a
now i am :ab
now i am :abc
out function
destruct
NULL 问题基本上找到了,明显析构函数是已经执行的了,但是实例内的变量已经销毁了。有人有解决方法?