PHP的魔術方法及異常

2021-07-13 22:17:57 字數 2090 閱讀 2257

php的魔術方法,及每個魔術方法的作用

定義:所有以兩個下劃線開頭的類方法,被稱為"魔術方法"(magic methods)。

1.__construct()

例項化物件時被呼叫,

當__construct和以類名為函式名的函式同時存在時, __construct將被呼叫,另乙個不被呼叫。

2.__destruct() 

當刪除乙個物件或物件操作終止時被呼叫。

3.__call()

物件呼叫某個方法,

若方法存在,則直接呼叫;

若不存在,則會去呼叫__call函式。

4.__get()

讀取乙個物件的屬性時,

若屬性存在,則直接返回屬性值;

若不存在,則會呼叫__get函式。

5.__set()

設定乙個物件的屬性時,

若屬性存在,則直接賦值;

若不存在,則會呼叫__set函式。

6.__tostring()

列印乙個物件的時被呼叫。如echo $obj;或print $obj;

7.__clone()

轉殖物件時被呼叫。如:$t=new test();$t1=clone $t;

8.__sleep()

serialize之前被呼叫。若物件比較大,想刪減一點東東再序    列化,可考慮一下此函式。

9.__wakeup()

unserialize時被呼叫,做些物件的初始化工作。

10.__isset()

檢測乙個物件的屬性是否存在時被呼叫。如:isset($c->name)。

11.__unset()

刪除某個變數

unset乙個物件的屬性時被呼叫。如:unset($c->name)。

12.__set_state()

呼叫var_export時,被呼叫。用__set_state的返回值做為var_export的返回值。

13.__autoload()

例項化乙個物件時,如果對應的類不存在,則該方法被呼叫。

14.__invoke()

當嘗試以呼叫函式的方式去呼叫物件,沒有定義則不存在,

定義後則表示嘗試將乙個物件以函式方式呼叫時自動訪問。

php的異常

什麼是異常?

php 5 提供了一種新的物件導向的錯誤處理方法。

異常處理用於在指定的錯誤(異常)情況發生時改變指令碼的正常流程。這種情況稱為異常。

1.通常錯誤提示資訊不會對使用者開放,但是使用者操作時必須明確是否能夠正確的執行,

因此我們需要對於可能出現問題的**內容作出處理,這個就被稱為異常處理。

2.異常處理操作: try...catch..**塊。 

3.try 當中包含可能出現問題的**,而用catch來對出現的異常進行捕獲。

4.一旦有定義好的異常出現,要麼在該異常後的語句被跳過不再執行,而去執行輸出catch塊中的**。

5.在php中,一般是判斷是否正確返回或者捕獲到需要的物件或數值,如果沒有,則使用throw關鍵字,丟擲異常資訊。

當異常被觸發時,通常會發生:

1.當前**狀態被儲存

2.**執行被切換到預定義的異常處理器函式

3.根據情況,處理器也許會從儲存的**狀態重新開始執行**,終止指令碼執  行,或從**中另外的位置繼續執行指令碼

不同的錯誤處理方法:

1.異常的基本使用

2.建立自定義的異常處理器

多個異常

3.重新丟擲異常

4.設定頂層異常處理器

require_once 和include_once的區別??

include_once —— 如果沒有對應檔案,只是發出錯誤警告而後面的**正確執行

require_once —— 如果沒有對應檔案,發出錯誤提示後並終止程式

呼叫當前類中的靜態方法用——self::類名字串(引數);

判斷類當中是否包含某個指定名稱的非靜態函式方法 ——method_exists

如果沒有去做定義,則該函式預設無返回值,相當於返回乙個false

sleep 方法常用於提交未提交的資料,或類似的清理操作

能夠用echo輸出,說明使用了魔術方法tostring,將其轉變成了字串

PHP常用的魔術方法及規則

1.construct 具有建構函式的類會在每次建立新物件時先呼叫此方法 初始化工作執行。2.desstruct 物件的所有引用都被刪除或者當物件被顯式銷毀時執行。3.call 在物件中呼叫乙個不可訪問方法時,call 會被呼叫。4.callstatic 在靜態上下文中呼叫乙個不可訪問方法時,cal...

php的魔術函式(魔術方法)

construct 類的建構函式 destruct 類的析構函式 call 在物件中呼叫乙個不可訪問方法時呼叫 callstatic 用靜態方式中呼叫乙個不可訪問方法時呼叫 get 獲得乙個類的成員變數時呼叫 set 設定乙個類的成員變數時呼叫 isset 當對不可訪問屬性呼叫isset 或empt...

PHP魔術方法和魔術常量介紹及使用

有些東西如果不是經常使用,很容易忘記,比如魔術方法 和魔術常量。php中把以兩個下劃線 開頭的方法稱為魔術方法,這些方法在php中充當了舉足輕重的作用。魔術方法包括 建構函式和析構函式應該不陌生,他們在物件建立和消亡時被呼叫。例如我們需要開啟乙個檔案,在物件建立時開啟,物件消亡時關閉 class f...