zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    ES6 数值
    ES6 字符串
    ES6 Reflect 与 Proxy
    ES6 Map 与 Set
    es6 Symbol
    新兴的API(fileReader、geolocation、web计时、web worker)
    浏览器数据库 IndexedDB 入门教程
    离线应用与客户端存储(cookie storage indexedDB)
    javascript高级技巧篇(作用域安全、防篡改、惰性载入、节流、自定义事件,拖放)
    ajax与comet
  • 原文地址:https://www.cnblogs.com/luowen/p/2757943.html
Copyright © 2011-2022 走看看