首頁 >後端開發 >php教程 >php建構函式與析構函式詳解

php建構函式與析構函式詳解

怪我咯
怪我咯原創
2017-07-12 10:33:372659瀏覽

PHP析構函數建構子是相反的,它們被呼叫來一個物件從記憶體中銷毀,幫助我們釋放物件屬性所佔用的記憶體並銷毀物件相關的資源。

php建構子是物件建立完成後,第一個自動呼叫的方法,析構函式是當物件被釋放之前最後一個自動呼叫的方法。本文章向大家介紹php建構函式與析構函式。

php建構子


#建構子 ,是一種特殊的方法。主要用來在建立物件時初始化對象, 即為對象成員變數賦初始值,總是與new運算子一起使用在建立物件的語句中。特別的一個類別可以有多個建構函式 ,可根據其參數個數的不同或參數類型的不同來區分它們 即建構函式的重載。

1.是物件建立完成後,「第一個」「自動呼叫」的方法
2.建構方法的定義,方法名稱是固定的,

在php4中:和類別名稱相同的方法就是建構方法
在php5中:建構方法選擇使用魔術方法construct() 所有類別中宣告構造方法都使用這個名稱

優點:在改變類別名稱時,建構方法不用改變

魔術方法: 在類別中寫出了某個魔術方法,這個方法對應的功能就會添加上
方法名稱都是固定的(都是系統提供好的),沒有自己定義的
每一個魔術方法,都是在不同時刻為了完成某一功能自動調用的方法
不同的魔術方法有不同的呼叫時機
都是以 開頭的方法
 construct(); destruct(); set();......

作用:為成員屬性初始化;

php析構函式

#析構函式(destructor) 與建構子相反,當物件結束其生命週期時(例如物件所在的函數已調用完畢),系統會自動執行析構函數。析構函數往往用來做「清理善後」 的工作(例如在建立物件時用new開闢了一片記憶體空間,delete會自動呼叫析構函數後釋放記憶體)。

1.當物件被釋放之前最後一個「自動」呼叫的方法
使用垃圾回收器(java php),而c++手動的釋放
作用:關閉一些資源,作一些清理的工作

destruct();

php建構子與析構函式實例

class Person{ 
var $name; 
var $age; 
var $sex; 
//php4中的构造方法 
/*function Person() 
{ 
//每声明一个对象都会调用 
echo "1111111111111111"; 
}*/ 
//php5中的构造方法 
function construct($name,$age,$sex){ 
$this->name=$name; 
$this->age=$age; 
$this->sex=$sex; 
} 
function say(){ 
//$this->name;//对象中成员的访问使用$this 
echo "我的名字:{$this->name},我的年龄:{$this->age}<br>" 
} 
function run(){ 
} 
function eat(){ 
} 
//析构方法 
function destruct(){ 
} 
} 
$p1=new Person("zhangsan",25,"男"); 
$p2=new Person; 
$p3=new Person;

以上是php建構函式與析構函式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn