PHP中的魔術常量、預定義常量和預定義變數

來源:互聯網
上載者:User
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 開啟時可用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.