PHP中的construct(构造方法)和destruct(析构方法)
1 <?php 2 3 /*燕十八 公益PHP培训 4 课堂地址:YY频道88354001 5 学习社区:www.zixue.it */ 6 7 8 9 header('content-type:text/html;charset=utf-8'); 10 11 class Dog{ 12 13 function __construct($name,$age){//给Dog对象进行初始化,当对象创建的时候,也就是new的时候开始调用 14 $this->name=$name; 15 $this->age=$age; 16 } 17 public $name=''; 18 public $age=''; 19 function __destruct(){//当Dog类没有使用的是后开始调用 20 21 echo 'Dog is die!'; 22 } 23 24 } 25 $a=new Dog('大黄',10);//$a实例化了一个对象,这时__construct开始调用了 26 $d=$c=$b=$a;//定义了$b,$c,$d共同指向了$a指向的地址,对象是地址引用 27 28 echo $b->name.'<br/>';//取$a,$b,$c,$d指向的name属性:注:$a,$b,$c,$d指向了同一个对象 29 echo $c->name.'<br/>'; 30 echo $d->name.'<br/>'; 31 32 echo '<hr/>'; 33 $b=new Dog('小花',5);//$b重新实例化了一个新的对象$b指向的对象地址发生了变化不再指向$a,$c,$d,指向对象的地址了 34 35 echo $b->name.'<br/>';//取出$b指向的对象的name属性 36 37 unset($b);//删除对象$b此时$b对象没有使用了,开始调用__destruct方法 38 39 echo $c->name.'<br/>';//$c,$d,$a指向的地址没有变 40 echo $d->name.'<br/>'; 41 //代码执行完后,最后调用$a,$c,$d对象的__destruct方法 42 43 /* 44 大黄 45 大黄 46 大黄 47 --------------------------------------- 48 小花 49 Dog is die!//$b释放后调用的__destruct 50 大黄 51 大黄 52 Dog is die!//$a,$c,$d释放后调用__destruct