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)

    

    */

?>

 

你可能感兴趣的:(学习笔记)