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

 

你可能感兴趣的:(struct)