這兩個函數用于對象生命周期結束前和對象生命周期結束后自動執行
PHP 構造函數
構造函數是一種特殊的方法。主要用來在創建對象時初始化對象, 即為對象成員變量賦初始值,在創建對象的語句中與?new?運算符一起使用。
PHP 5 允許開發者在一個類中定義一個方法作為構造函數,語法格式如下:
void __construct ([ mixed $args [, $... ]] )
在上面的例子中我們就可以通過構造方法來初始化 $url 和 $title 變量:
function __construct( $par1, $par2 ) {
$this->url = $par1;
$this->title = $par2;
}
現在我們就不需要再調用 setTitle 和 setUrl 方法了:
使用構造函數前
$runoob = new Site;
$taobao = new Site;
$google = new Site;
// 調用成員函數,設置標題和URL
$runoob->setTitle( "菜鳥教程" );
$taobao->setTitle( "淘寶" );
$google->setTitle( "Google 搜索" );
$runoob->setUrl( 'www.runoob.com' );
$taobao->setUrl( 'www.taobao.com' );
$google->setUrl( 'www.google.com' );
使用構造函數后
$runoob = new Site('www.runoob.com', '菜鳥教程');
$taobao = new Site('www.taobao.com', '淘寶');
$google = new Site('www.google.com', 'Google 搜索');
// 調用成員函數,獲取標題和URL
$runoob->getTitle();
$taobao->getTitle();
$google->getTitle();
$runoob->getUrl();
$taobao->getUrl();
$google->getUrl();
析構函數
析構函數(destructor) 與構造函數相反,當對象結束其生命周期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。
PHP 5 引入了析構函數的概念,這類似于其它面向對象的語言,其語法格式如下:
void __destruct ( void )
實例
<?php
class MyDestructableClass {
function __construct() {
print "構造函數n";
$this->name = "MyDestructableClass";
}
function __destruct() {
print "銷毀 " . $this->name . "n";
}
}
$obj = new MyDestructableClass();
?>
執行以上代碼,輸出結果為:
構造函數
銷毀 MyDestructableClass