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