<?php class Person{ public $name; public $age; public function __construct($iname,$iage) { $this->name=$iname; $this->age=$iage; } //定义一个析构函数 两个下划线 ,析构函数在对象被释放的时候会自动调用 //最先被创建最后被销毁,因为是放入栈中,栈是先进后出 //析构函数调用的时机 //1.当程序(进程结束)退出时 //2.当一个对象成为垃圾对象(没有任何变量再引用它,或是变为null)的时候,该对象的析构函数会自动调用 public function __destruct() { echo $this->name."销毁资源<br/>"; } } $p1=new Person("张三",5); $p1=null;//一旦没有引用就会被回收,所以这个时候$p1的析构函数会先被调用 $p2=new Person("李四",6) $p3=new Person("李六",6) /* $p1=new Person("张三",5); $p4=$p1; $p1=null;//如果是这样那么$p1会最后被回收,因为$p4有引用它,所以它还没成为垃圾对象 $p2=new Person("李四",6) $p3=new Person("李六",6) */ ?>