php內建變數了:DIRECTORY_SEPARATOR
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
新增)