<?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)
*/
?>