相关疑难解决方法(0)

什么时候不会在PHP中调用__destruct?

class MyDestructableClass {
   function __construct() {
       print "\nIn constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "\nDestroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
Run Code Online (Sandbox Code Playgroud)

当上面的脚本处于复杂的环境中时,__destruct不会被调用exit,但是我无法轻易地重现它.有人注意到了吗?

编辑

我将在这里发布所有内容,它是symfony的测试环境,这意味着如果您熟悉框架,您可以轻松地重现它:

require_once dirname(__FILE__).'/../bootstrap/Doctrine.php';


$profiler = new Doctrine_Connection_Profiler();

$conn = Doctrine_Manager::connection();
$conn->setListener($profiler);

$t = new lime_test(0, new lime_output_color());

class MyDestructableClass {
   function __construct() {
       print "\nIn constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "\nDestroying " . $this->name . "\n";
   }
}

$obj …
Run Code Online (Sandbox Code Playgroud)

php destructor

49
推荐指数
6
解决办法
3万
查看次数

我可以信任要调用PHP __destruct()方法吗?

在PHP5中,是否保证为每个对象实例调用__destruct()方法?程序中的异常是否可以防止这种情况发生?

php garbage-collection

41
推荐指数
5
解决办法
3万
查看次数

标签 统计

php ×2

destructor ×1

garbage-collection ×1