PHP构造函数和析构函数
介绍
在面向对象的编程术语中,构造函数是在类内部定义的方法,在创建对象时会自动调用该方法。构造方法的目的是初始化对象。在PHP中,特殊名称 __construct的方法充当构造函数。
语法
__construct ([ mixed $args = "" [, $... ]] ) : void
构造函数示例
这个例子表明构造函数在声明对象时自动执行
示例
<?php class myclass{ function __construct(){ echo "object initialized"; } } $obj=new myclass(); ?>
输出结果
这将产生以下结果。-
object initialized
带参数的构造函数
类属性由构造函数使用参数初始化
示例
<?php class rectangle{ var $height; var $width; function __construct($arg1, $arg2){ $this->height=$arg1; $this->width=$arg2; } function show(){ echo "Height=$this->height Width=$this->width"; } } $obj=new rectangle(10,20); $obj->show(); ?>
输出结果
这将产生以下结果。-
Height=10 Width=20
继承中的构造函数
如果父类中定义了构造函数,则可以通过parent::__construct在子类的构造函数中调用它。但是,如果子类未定义构造函数,则它从基类继承相同的子类。
示例
<?php class a{ function __construct(){ echo "this is a constructor of base class\n"; } } class b extends a{ function __construct(){ parent::__construct(); echo "this a constructor class b\n"; } } class c extends a { // } $a=new a(); $b=new b(); $c=new c(); ?>
输出结果
这将产生以下结果。-
this is a constructor of base class this is a constructor of base class this a constructor class b this is a constructor of base class
析构函数
垃圾回收器发现特定对象不再具有引用后,析构函数将自动运行。在PHP中,析构函数方法名为 __destruct。在关机顺序中,对象也将被破坏。析构函数方法不带任何参数,也不返回任何数据类型
示例
<?php class myclass{ function __construct(){ echo "object is initialized\n"; } function __destruct(){ echo "object is destroyed\n"; } } $obj=new myclass(); ?>
输出结果
这将显示以下结果
object is initialized object is destroyed