溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP面向對象中常用的魔術方法總結

發布時間:2020-08-03 14:45:00 來源:網絡 閱讀:607 作者:w0rdyyp 欄目:web開發


1.構造函數__construct()’

說明:是對象創建完成后,第一個被調用的方法,當創建一個對象時,構造方法就會被自動調用一次,不能主動通過對象的引用調用構造方法。

作用:就是為成員屬性初始化

格式:

Function __construct([參數列表]){

//方法體,通常用來對成員屬性進行初始化賦值

}


2.析構函數__destruct()

說明:在銷毀一個對象之前執行的一些特定操作,例如:釋放文件、關閉結果集。

作用:關閉一些資源,做一些清理工作

格式:function__destruct(){

//方法體,通常用來完成一些在對象銷毀之前的清理任務

}


3.方法重載 __call()

說明:調用對象中不存在的方法時會自動調用此方法,并且程序也可以繼續向下執行。caLl()方法有兩個參數:第一個是調用不存在的方法時,接受這個方法名稱字符串;而參數列表則以數組的形式傳遞到__call()方法的第二個參數中。

格式:publicmixed__call ( string$name , array$arguments )


4.方法重載__callstatic()

說明:用靜態方式調用一個不可訪問的方法時,會自動調用此方法。$name參數是要調用的方法名稱。$arguments參數是一個枚舉數組,包含著要傳遞給方法$name的參數。

格式:public staticmixed__callStatic ( string$name , array$arguments )

5.__get()

說明:直接在對象的外部獲取私有屬性的值時,會自動調用此方法,返回私有屬性的值。并且可以再__get()方法中根據不同的屬性,設置一些條件來限制對私有屬性的非法取值操作。

格式:publicmixed__get ( string$name )


6.__set()

說明:控制在對象外部只能為私有的成員屬性賦值,不能獲取私有屬性的值。

作用:是在程序運行過程中為私有的成員屬性設置值,它不需要任何返回值。但他需要兩個參數,第一個參數需要傳入在為私有屬性設置值時的屬性名,第二個參數則需要傳入為屬性設置的值。

格式:publicvoid__set ( string$name , mixed$value )

7.__isset()

說明:當需要測定對象里面的私有屬性的值時,會自動調用此方法,間接地幫助我們完成對對象中私有成員屬性的測定。

格式:publicbool__isset ( string$name )

8.__unset()

說明:當對不可訪問屬性調用unset()時,__unset() 會被調用。進行私有屬性的刪除操作。

格式:publicvoid__unset ( string$name )

9.__sleep()

說明:在調用seralize()函數將對象串行化時,會自動調用此方法,用來將對象中的部分成員串行化。該函數不接受任何參數,但需要返回一個數組,在數組中包含需要串行化的屬性。未被包含在數組中的屬性將在串行化時被忽略。如果沒有在類中聲明__sleep()方法,對象中的所有屬性都將被串行化。

格式:publicarray__sleep ( void )

10.__wakeup()

說明:在調用unseralize()函數反串行化對象時,會自動調用此方法,用來在二進制串中重新組成一個對象時,為新對象中的成員屬性重新初始化。

格式:void__wakeup ( void )

11.__toString()

說明:是快速獲取對象的字符串表示的最便捷的方式,他是在直接輸出對象引用時自動調用的方法。

格式:publicstring__toString ( void )

12.__invoke()

說明:當嘗試以調用函數的方式調用一個對象時,__invoke() 方法會被自動調用。

格式:mixed__invoke ([ $... ] )

13__clone()

說明:該方法在對象被克隆時自動調用,所以就可以通過此方法對克隆后的副本重新初始化。該方法不需要任何參數,該方法中自動包含$this$that兩個對象的引用,$this是副本對象的引用,而$that則是原本對象的引用。

格式:void__clone ( void )



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女