PHP在設計的時候已經預先定義了9個超全局變數、8個魔術變數和13魔術方法,這些變數和函數可以在腳本的任何地方不用聲明就可以使 用。 在PHP開發會頻繁的使用這些變數和函數,這些變數和函數可以方便的幫我們解決很多問題。以下詳細的說明下PHP中的超全域變數、魔術變數和魔術方法。
PHP超全域變數(9個)
$GLOBALS 儲存全域作用域中的變數
$_SERVER 『 $_POST 取得表單的POST請求參數
$_GET 取得表單的GET請求參數
$_FILES 取得上傳檔案的的變數
組瀏覽器cookie的操作
設定cookie:setcookie(name, value , expire, path, domain);
獲取cookie:$_COOKIE["user"];🀜 》 〝 〦 〝 另 、 ) )-3600);//設定過期時間
$ _SESSION 服務端session的操作
使用session前一定要session_start()啟動session
儲存session:$_SESSION["name"]="King";//數組操作
銷毀session:unset($_SESSION[" name"]);//銷毀一個
session_destroy()和unset($_SESSION);//銷毀所有的session
LINE『 文件中的目前行號。
__FILE__ 檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。
__DIR__ 檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。
__FUNCTION__ 常數傳回該函數被定義時的名字
__CLASS__ 常數傳回該類別被定義時的名字(區分大小寫)。
__TRAIT__ Trait 的名稱(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 實作了程式碼重複使用的一個方法,稱為 traits。
__METHOD__ 類別的方法名稱(PHP 5.0.0 新加)。傳回該方法被定義時的名字(區分大小寫)。
__NAMESPACE__ 目前命名空間的名稱(區分大小寫)。此常數是在編譯時定義的(PHP 5.3.0 新增)。
PHP魔術方法(13個)
__construct() 實例化物件時被調用,當__construct和以類別名稱為函數名的函數同時存在時,__construct將被調用,另一個不被調用。
__destruct() 當刪除一個物件或物件操作終止時被呼叫。
__call() 物件呼叫某個方法,若方法存在,則直接呼叫;若不存在,則會去呼叫__call函數。
__get() 讀取物件的屬性時,若屬性存在,則直接傳回屬性值;若不存在,則會呼叫__get函數。
__set() 設定一個物件的屬性時,若屬性存在,則直接賦值;若不存在,則會呼叫__set函數。
__toString() 列印一個物件的時被呼叫。如echo $obj;或print $obj;
__clone() 克隆物件時被呼叫。如:$t=new Test();$t1=clone $t;
__sleep() serialize先前被呼叫。若物件比較大,想刪減一點東東再序列化,可考慮此函數。
__wakeup() unserialize時被調用,做些物件的初始化工作。
__isset() 偵測一個物件的屬性是否存在時被呼叫。如:isset($c->name)。
__unset() unset一個物件的屬性時被呼叫。如:unset($c->name)。
__set_state() 呼叫var_export時,被呼叫。用__set_state的回傳值做為var_export的回傳值。
__autoload() 實例化一個物件時,如果對應的類別不存在,則該方法被呼叫。