PHP学习笔记十九【析构函数】

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

 

posted @ 2014-10-26 21:41  编程猴子  阅读(132)  评论(0编辑  收藏  举报