好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中构造函数与析构函数详解 - php函数

php中构造函数与析构函数详解

在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考.

析构函数

php析构函数的作用刚好和构造函数相反,构造函数是在对象实例化时自动执行,而析构函数在对象被销毁时自动执行.

默认情况下,php仅释放对象属性所占用的内存,并不销毁对象相关的资源,而利用析构函数在使用一个对象之后执行代码来清除内存,并将对象从内存中销毁.析构函数__destruct()结构形式如下:

实例代码如下:

function  __destruct(){       /* class initialization code */   }  

析构函数是由系统自动调用,不能带参数.

实例代码如下:

<?php     class  des{     function  __destruct(){      echo   "运行结束,执行析构函数" ;    }   }    $p = new  des();  /* 实例化类 */     $sum =0;    for ( $i =0; $i <10; $i ++){     $sum = $sum + $i ;     echo   $sum  . "<br>" ;   }  ?> 

析构函数的调用

php如何调用析构函数?当php脚本不再与对象相关时将调用析构函数.如果要明确地销毁一个对象调用析构函数,可以给指向对象的变量不分配任何值,通常将变量赋值为NULL或者用unset()函数.

实例代码如下:

<?php     class  des{     function  __destruct(){      echo   "对象被销毁,执行析构函数<br>" ;    }   }    $p = new  des();  /* 实例化类 */     echo   "程序开始<br>" ;   unset( $p );  /* 销毁变量$p */     echo   "程序结束" ;  ?> 

构造函数

我们在使用类的过程中,有时需要立即为实例化对象的多个字段父子,如果通过手工,会带来很多不可预测的问题,而如果在对象创建过程中自动执行,则会带来很多方便.

php构造函数作用就是当类被实例化时,会自动执行的函数,又称为构造函数.构造函数的声明和其它函数一样,知识构造函数的名称是[__construct]固定的名称,其结构形式如下:

实例代码如下:

function  __construct([argument1,argument2,argument3]){       /* class initialization code */   } 

实例代码如下:

<?php     class  user{     public   $name ;     private   $password ;     private   $login ;     public   function  __construct( $name , $password ){      $this ->name= $name ;      $this ->password= $password ;      $this ->login=time();    }     function  getlogin(){      return ( date ( 'M d,Y' , $this ->login));    }   }    $user = new  user( 'Marry' , '888888' );    echo   "用户名: " .  $user ->name.  "<br>" ;   print( "访问时间" .  $user ->getlogin());  ?> 

调用父类构造函数

构造函数可以被子类调用,php调用父类构造函数时必须使用parent关键字,否则不会自动调用.

实例代码如下:

<?php     class  task1{     public   function  __construct(){      echo   "today is Monday" .  "<br>" ;    }   }    class  task2  extends  task1{     function  __construct(){     parent::__construct();  /* 调用父类构造函数 */       echo   "I must work!" ;    }   }    new  task2;  ?> 

查看更多关于php中构造函数与析构函数详解 - php函数的详细内容...

  阅读:49次