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中文網其他相關文章!