zoukankan      html  css  js  c++  java
  • PHP面向对象的构造方法与析构方法

    构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关。构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因。而析构方法时对象在销毁之前最后一个被对象自动调用的方法,这也是我们在对象中使用析构方法的原因。所以通常使用构造方法完成一些对象的初始化工作,使用析构方法完成一些对象在销毁前的清理工作。
    构造方法:
    ①一个类只能有一个构造方法!
    ②构造方法没有返回值。
    ③构造方法的作用是对新对象的初始化,但并不能创造对象本来、在创建构造方法后,系统将自动调用构造方法!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php 
        class person{ 
             public $name
             public $age
              //构造方法 (没有返回值,直接调用!) 
             public function __construct($name,$age){ 
                 //this 是一个引用对象本身,相对于当前对象的地址! 
                 $this->age=$age
                 $this->name=$name
                 echo "这是一个构造方法 <br/>"
             
             //构造方法2:(php4中方法) 
             public function person(){ 
     
                 echo"OK<br/>"
             
         
             //两种构造方法同时存在时,优先输出方法1; 
             $po=new person("aaa",20); 
             echo $po->name.$po->age; 
    ?>

    析构方法:
    析构方法主要作用是用来释放资源!如释放数据库的链接,或图片链接或销毁某个对象等等,主要特点如下:
    ①系统自动调用。
    ②主要用于释放资源
    ③析构函数调用的顺序,先创建的对象,先被销毁(最先创建的会被压栈)。
    ④当一个对象成为垃圾对象的时候,该析构函数会被立即调用。进程结束后退出! 所谓垃圾对象就是指没有任务变量再引用它了,一旦一个对象成为垃圾对象,析构函数会被立即调用!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php 
        class person{ 
             public $name
             public $age
              //构造方法 (没有返回值,直接调用!) 
             public function __construct($name,$age){ 
                 $this->age=$age
                 $this->name=$name
                 echo "这是一个构造方法 <br/>"
             
             //析构方法 
             public function __destruct(){ 
                 echo $this->name."销毁资源"
             
         
             //两种构造方法同时存在时,优先输出方法1; 
             $po=new person("aaaa",20); 
             $po1=new person("bbbb",20); 
             $po2=new person("cccc",20); 
     
    ?>

    当在$po=new person(“aaaa”,20);后面增加 $po=null;

    析构方法输出结果

     
  • 相关阅读:
    BZOJ 3555: [Ctsc2014]企鹅QQ hash
    bzoj 4300: 绝世好题 dp
    Codeforces Round #192 (Div. 1) C. Graph Reconstruction 随机化
    Codeforces Round #192 (Div. 1) B. Biridian Forest 暴力bfs
    Codeforces Round #192 (Div. 1) A. Purification 贪心
    HDU 5514 Frogs 容斥定理
    HDU 5515 Game of Flying Circus 二分
    HDU 5521 Meeting 最短路
    HDU 5510 Bazinga 暴力匹配加剪枝
    HDU 5512 Meeting 博弈论
  • 原文地址:https://www.cnblogs.com/ncong/p/3900471.html
Copyright © 2011-2022 走看看