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函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30628