PHP魔術方法

2022-06-23 05:51:14 字數 2274 閱讀 9638

__construct構造還是 具有建構函式的類在每次建立新物件時先呼叫此方法,適合做一些初始化工作。

如果 php 5 在類中找不到 __construct()

函式並且也沒有從父類繼承乙個的話,它就會嘗試尋找舊式的建構函式,也就是和類同名的函式,也就是說會 __construct 比類同名的函式 優先順序高自 php5.3.3 起,在命名空間中,與類名同名的方法不再作為建構函式。這一改變不影響不在命名空間中的類。

當 __construct()

被與父類 __construct()

具有不同引數的方法覆蓋時,php 不會產生乙個e_strict(編碼標準化警告) 錯誤資訊。

__destruct析構函式 會在某個物件的所有引用都被刪除或者當物件顯示銷毀時執行。

和建構函式一樣,父類的析構函式不會被引擎暗中呼叫。要執行父類的析構函式,必須在子類的析構函式體中顯式呼叫parent::__destruct()。此外也和建構函式一樣,子類如果自己沒有定義析構函式則會繼承父類的。

析構函式即使在使用 exit()

終止指令碼執行時也會被呼叫。在析構函式中呼叫 exit()

將會中止其餘關閉操作的執行。

__call在物件中呼叫乙個不可訪問方法時,__call()

會被呼叫。

__callstatic用靜態方式中呼叫乙個不可訪問方法時,__callstatic()

會被呼叫。

__get()

,__set()

,__isset()

和 __unset()

進行屬性過載

在給不可訪問屬性賦值時,__set()

會被呼叫。

讀取不可訪問屬性的值時,__get()

會被呼叫。

當對不可訪問屬性呼叫 isset()

或 empty()

時,__isset()

會被呼叫。

當對不可訪問屬性呼叫 unset()

時,__unset()

會被呼叫

屬性過載只能在物件中進行。在靜態方法中,這些魔術方法將不會被呼叫。所以這些方法都不能被 宣告為 static

。從 php 5.3.0 起, 將這些魔術方法定義為 static

會產生乙個警告。

__sleep()

方法常用於提交未提交的資料,或類似的清理操作。同時,如果有一些很大的物件,但不需要全部儲存,這個功能就很好用。

與之相反, unserialize()

會檢查是否存在乙個 __wakeup()

方法。如果存在,則會先呼叫 __wakeup

方法,預先準備物件需要的資源。

__wakeup()

經常用在反序列化操作中,例如重新建立資料庫連線,或執行其它初始化操作。

note:

__sleep()

不能返回父類的私有成員的名字。這樣做會產生乙個e_notice級別的錯誤。可以用serializable介面來替代。

法用於乙個類被當成字串時應怎樣回應。例如 echo $obj;

應該顯示些什麼。此方法必須返回乙個字串,否則將發出一條e_recoverable_error級別的致命錯誤。

當嘗試以呼叫函式的方式呼叫乙個物件時,__invoke()

方法會被自動呼叫。

note:

本特性只在 php 5.3.0 及以上版本有效。

static object__set_state( array$properties)

本方法的唯一引數是乙個陣列,其中包含按 array('property' => value, ...)

格式排列的類屬性。

呼叫 var_expotr() 匯出類時,此靜態方法會被呼叫

在轉儲物件以獲取應顯示的屬性時,var_dump()呼叫此方法。如果沒有在物件上定義方法,那麼將顯示所有公共、受保護和私有屬性。

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...