php中魔術有兩種意思,分別是:1、指魔術方法,PHP將所有以兩個底線開頭的類別方法保留為魔術方法;2、指魔術常數,PHP向它運行的任何腳本提供了大量的預定義常數。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
魔術方法
#PHP 將所有以__(兩個底線)開頭的類別方法保留為魔術方法。所以在定義類別方法時,除了上述魔術方法,建議不要以 __ 為前綴。
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(),__serialize(), __unserialize(), __toString(),__invoke(),__set_state(), __clone() 和__debugInfo() 等方法在PHP 中稱為魔術方法(Magic methods)。在命名自己的類別方法時不能使用這些方法名,除非是想使用其魔術功能。
注意: 所有的魔術方法必須宣告為public
魔術常數
PHP 向它執行的任何腳本提供了大量的預設常數。不過很多常數都是由不同的擴充函式庫定義的,只有在載入了這些擴充函式庫時才會出現,或是動態載入後,或是在編譯時已經包含進去了。
有八個魔術常數它們的值隨著它們在程式碼中的位置改變而改變。例如 __LINE__ 的值就依賴它在腳本中所處的行來決定。這些特殊的常數不區分大小寫,如下:
幾個 PHP 的「魔術常數」
##__LINE__ :檔案中的目前行號。 __FILE__ :檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。 __DIR__ :檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。 __FUNCTION__ :目前函數的名稱。匿名函數則為 {closure}。 __CLASS__ :目前類別的名稱。類別名稱包括其被宣告的作用區域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 對 trait 也起作用。當用在 trait 方法時,__CLASS__ 是呼叫 trait 方法的類別的名字。 __TRAIT__ :Trait 的名字。 Trait 名包括其被聲明的作用區域(例如 Foo\Bar)。 __METHOD__ :類別的方法名稱。 __NAMESPACE__ :目前命名空間的名稱。 ClassName::class :完整的類別名,請參閱 ::class。 請參閱 get_class() get_object_vars(), file_exists() 和 function_exists()。 【推薦學習:《PHP影片教學》】
以上是php魔術是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!