1. 魔術常量
PHP中有八個魔術常量,它們的值會隨著它們在代碼中的位置的改變而改變。這些特殊的常量不區分大小寫。
LINE :返迴文件中的當前行號。也可寫成line。
FILE:返回當前檔案的絕對路徑(包含檔案名稱)。
DIR:返回當前檔案的絕對路徑(不包含檔案名稱),等價於 dirname(FILE)。
FUNCTION:返回當前函數(或方法)的名稱。
CLASS:返回當前的類名(包括該類的作用地區或命名空間)。
TRAIT:返回當前的trait名稱(包括該trait的作用地區或命名空間)。
METHOD:返回當前的方法名(包括類名)。
NAMESPACE:返回當前檔案的命名空間的名稱。
2. 預定義常量
核心預定義常量:是在PHP的核心中就定義好了的常量。區分大小寫。
PHP_VERSION:返回PHP的版本。
PHP_OS:返回執行PHP解譯器的作業系統名稱。
PHP_EOL:系統分行符號,Windows是(\r\n),Linux是(\n),MAC是(\r)。
標準預定義常量:PHP預設定義的常量。區分大小寫。
M_PI:返回圓周率π的值。
3. 預定義變數
php 中的許多預定義變數都是"超全域的",這意味著它們在一個指令碼的全部範圍中都可用。在函數或方法中無需執行 global $variable, 就可以訪問它們。
超全域變數是在全部範圍中始終可用的內建變數。
$GLOBALS:global全域變數,是一個包含了所有全域變數的組合數組,全域變數的名稱就是該組合數組的鍵。
$_GET:HTTP GET 變數,通過 URL 參數傳遞給當前指令碼的變數的數組。
$_POST:HTTP POST 變數,通過 HTTP POST 方式傳遞給當前指令碼的變數的數組。
$_COOKIE:HTTP Cookies 變數,通過 HTTP Cookies 方式傳遞給當前指令碼的變數的數組。
$_SESSION:session 變數,當前指令碼可用的 SESSION 變數的數組。
$_REQUEST:HTTP Request 變數,預設情況下包含了 $_GET,$_POST 和 $_COOKIE 的數組。
$_FILES:HTTP 檔案上傳變數,通過 HTTP POST 方式上傳到當前指令碼的項目的數組。
$_SERVER:伺服器資訊變數,包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等資訊的數組。這個數組中的項目由 Web 服務器建立。
$_ENV:環境變數,通過環境方式傳遞給當前指令碼的變數的數組。
以上預定義變數都是超全域變數。
以下預定義變數都是非全域的。
$php_errormsg:前一個錯誤資訊,$php_errormsg 變數包含由 PHP 產生的最新錯誤資訊。這個變數只在錯誤發生的範圍內可用,並且要求 track_errors 配置項是開啟的(預設是關閉的)。
$HTTP_RAW_POST_DATA:包含 POST 提交的未經處理資料。
$http_response_header:HTTP 回應標頭,$http_response_header 數組與 get_headers() 函數類似。當使用HTTP封裝器時,$http_response_header 將會被 HTTP 回應標頭資訊填充。
$argc:傳遞給指令碼的參數數目,包含當運行於命令列下時傳遞給當前指令碼的參數的數目。指令碼的檔案名稱總是作為參數傳遞給當前指令碼,因此 $argc 的最小值為 1,這個變數僅在 register_argc_argv 開啟時可用。
$argv:傳遞給指令碼的參數數組,包含當運行於命令列下時傳遞給當前指令碼的參數的數組。第一個參數總是當前指令碼的檔案名稱,因此 $argv[0] 就是指令檔名,這個變數僅在 register_argc_argv 開啟時可用。