標籤:
1.定義
是指在某些特定情況下會自動調用的方法
PHP提供了多個魔術方法,都是以__開頭的
2.構造方法 __construct
當執行個體化對象時,會自動調用該方法
可用於在執行個體化對象時傳參,以控制類的屬性
class 類名 {
private 屬性名稱 = null;
public function __construct ($形參) {
$this -> 屬性名稱 = $形參;
}
}
$對象 = new 類名(‘實參‘);
echo $對象 -> 屬性名稱;
3.析構方法 __destruct
當使用unset()銷毀對象、為對象賦予其他值或頁面執行完後會調用該方法
4.自動載入 __autoload
當執行個體化針對的類未載入到當前檔案中時會自動調用該方法
且會將類名傳入作為參數
function __autoload ($class) {
require (‘./‘. $class .‘.php‘);
}
$對象 = new 類名();
注意:
類的聲明是全域有效(哪怕在函數的內部)
可使用spl_autoload_regsite(‘方法名‘)將自訂方法
註冊為具有“自動載入”功能的方法
4.其它
方法名調用條件
__clone()當使用clone()複製對象時
__get($形參)當訪問非公用/未定義的屬性時
__set($形參1,$形參2)當修改非公用/添加未定義的屬性時
__call($形參1,$形參2)當訪問非公用/未定義的方法時
__callStatic($形參1,$形參2)當訪問非公用/未定義的靜態方法時
__isset()當對非公用/未定義的屬性使用isset()時
__unset()當對非公用/未定義的屬性使用unset()時
注意:這些魔術方法在編寫架構底層應用時,可以起到非常重要的作用
@zhnoah
出處:http://www.cnblogs.com/zhnoah/
本文著作權歸本人和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連
接,否則保留追究法律責任的權利。
PHP學習筆記——10.魔術方法