php內建變數的操作教程

才智咖 人氣:2.26W

php內建變量了:DIRECTORY_SEPARATOR

php內建變數的操作教程

DIRECTORY_SEPARATOR是一個返回跟作業系統相關的路徑分隔符的php內建命令,在windows上返回/,而在linux或者類unix上反悔/,就是這麼個區別,通常在定義包含檔案路徑或者上傳儲存目錄的時候會用到。

PHP 把所有以 __ (兩個下劃線)開頭的類方法當成魔術方法。所以你定義自己的類方法時,不要以 __ 為字首。

 1 、 __construct()

當例項化一個物件的時候,這個物件的構造方法將首先被呼叫;

我們知道 php5 物件模型和類名相同的函式是類的建構函式,那麼如果同時定義建構函式和 __construc() 方法的話, php5 會預設呼叫 __contruct() 而不會呼叫同類名函式,所以 __contruct() 作為類的預設建構函式;

2 、 __destruct()

解構函式會在到某個物件的所有引用都被刪除或者當物件被顯式銷燬時執行。

 3 、 __get(string $name)

當試圖讀取一個並不存在的屬性時被呼叫;如果試圖讀取一個物件並不存在的屬性的`時候, php 就會給出錯誤的資訊。如果在類裡新增 __get 方法,並且我們可以用這個函式實現類似 java 中的反射的各種操作。

 4 、 __set(string $name, mixed $value)

給未定義的變數賦值時將被呼叫

5 、 __call(string $name, array $arguments)

當呼叫一個不可訪問方法(如未定義,或者不可見)時, __call() 會被呼叫。

__callStatic( string $name, array $arguments )

當在靜態方法中呼叫一個不可訪問方法(如未定義,或者不可見)時, __callStatic() 會被呼叫。

 6 、 __toString()

當列印一個物件的時候被呼叫,這個方法類似於 java 的 toString 方法,當我們直接列印物件的時候回撥這個函式。

 7 、 __clone()

當物件被克隆時呼叫。

 8 、 __sleep()

serialize() 函式會檢查是否存在一個魔術方法 __sleep . 如果存在, __sleep() 方法會先被呼叫, 然後才執行序列化操作。這個功能可以用於清理物件,並返回一個包含物件中所有變數名稱的陣列。如果該方法不返回任何內容,則 NULL 被序列化,導致 一個 E_NOTICE 錯誤。 __sleep 方法常用於提交未提交的資料,或類似的操作。同時,如果你有一些很大的物件,不需要儲存,這個功能就很好用。

9 、 __wakeup()

與 __sleep() 相反, unserialize() 會檢查是否存在一個 __wakeup 方法。如果存在,則會先呼叫 __wakeup 方法,預先準備物件資料。 __wakeup 經常用在反序列化操作中,例如重新建立資料庫連線,或執行其它初始化操作。

10 、 __isset()

當對未定義的變數呼叫 isset() 或 empty() 時, __isset() 會被呼叫。

11 、 __unset()

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

12 、 __set_state()

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

13 、 __autoload()

例項化一個物件時,如果對應的類不存在,則該方法被呼叫。簡單的說就是類的自動載入 ; 當你嘗試使用一個 PHP 沒有組織到的類 , 它會尋找一個 __autoload 的全域性函式 . 如果存在這個函式 ,PHP 會用一個引數來呼叫它 , 引數即類的名稱。

14 、 __invoke()

當嘗試以呼叫函式的方式呼叫一個物件時, __invoke 方法會被自動呼叫。

魔術常量 :

__LINE__ 檔案中的當前行號。

__FILE__ 檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名。自 PHP 4.0.2 起, __FILE__ 總是包含一個絕對路徑(如果是符號連線,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。

__DIR__ 檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。它等價於 dirname(__FILE__) 。除非是根目錄,否則目錄中名不包括末尾的斜槓。( PHP 5.3.0 中新增) =

__FUNCTION__ 函式名稱( PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函式被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__CLASS__ 類的名稱( PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__METHOD__ 類的方法名( PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。

__NAMESPACE__ 當前名稱空間的名稱(大小寫敏感)。這個常量是在編譯時定義的( PHP 5.3.0 新增)

TAGS:內建 PHP 變數