PHP魔術方法

2021-08-16 04:39:34 字數 1846 閱讀 6313

命名空間

多個命名相同衝突的問題

類自動載入

sql_autoload_register

和__autoload

第一種function loadprint($file)

}spl_autoload_register(『loadprint』);

第二種function __autoload($class)

}php

鏈式操作

return $this;

php魔術方法

1 構造方法的作用是什麼

通常構造方法被用來執行一些有用的初始化任務,如對成員屬性在建立物件時賦予初始值

構造方法的在類中的宣告格式

function __construct()

同乙個類中只能宣告乙個構造方法,原因是

php不支援建構函式過載

構造方法名稱是以兩個下畫線開始的

__construct()

2 析構函式

__destruct()

類的析構函式

允許在銷毀乙個類之前執行一些操作或完成一些功能,比如說關閉檔案,釋放結果集等

function __destruct()

3 __call(),

在物件中呼叫乙個不可訪問方法時呼叫

該方法有兩個引數,第乙個引數

$function_name

會自動接收不存在的方法名,第二個

$arguments

則以陣列方式接受不存在方法的多個引數

4 __callstatic()

用靜態方式中呼叫乙個不可訪問的方法時呼叫

5__get()

獲得乙個類的成員變數時呼叫

在php

物件導向程式設計中,類的成員屬性被設定為

private

後,如果我們試圖在外邊呼叫它則會出現不能訪問某個私有屬性的錯誤,則為了解決這個問題,我們可以使用魔術方法

__get()

6 __set()

設定乙個類的成員變數時呼叫

用來設定私有屬性,給乙個未定義的屬性賦值時,此方法會被觸發,傳遞的引數是被設定的屬性名和值

7 __isset(),

當對不可訪問屬性呼叫

isset()

或empty()

時呼叫公有屬性

isset

可以測,私有屬性不可以測,需要加

__set

函式8 __unset(),

當對不可訪問屬性呼叫

unset()

時被呼叫

刪除屬性

9 __sleep()

執行serialize()

時,先會呼叫這個函式

serialize

函式會檢查類中是否存在乙個魔術方法

__sleep().

如果存在,則該方法會優先被呼叫,然後才執行序列化操作,此功能用於清理物件,並返回乙個包含物件所有應被序列化的變數名稱的陣列

10 __wakeup(),

執行unserialize()

時。先會呼叫這個函式

11 __tostring(),

類被當成字串時的回應方法

12 __invoke()

呼叫函式的方式呼叫乙個物件的回應方法

13 __set_state()

此靜態方法會被呼叫

14 __clone()

當物件複製完成時呼叫

php 5

會對物件的所有屬性執行乙個淺複製,

clone

直接複製

15 __autoload()

嘗試載入未定義的類

16 __debuginfo()

列印所需除錯資訊

php魔術常量,魔術方法

魔術常量 1。line 返回檔案中的當前行號。2。file 返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自php4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。3。function 返回函式名稱 php4.3.0 新加 自php5 起本常量返...

invoke 魔術 PHP 魔術方法

php 魔術方法 構造方法 construct 析構方法 destruct get 與 set unset call 和 callstatic sleep 和 wakeup clone tostring invoke set state debuginfo construct 這個方法應該是最常用的...

php魔術方法

php5魔術方法 魔術函式 1。construct 建構函式 例項化物件時被呼叫,當 construct和以類名為函式名的建構函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 析構函式 當刪除乙個物件或物件操作終止時被呼叫 程式結束後物件就摧毀 永遠都是最後執行的。3...