首頁  >  文章  >  後端開發  >  PHP中的魔術常數、預定義常數和預定義變數

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

怪我咯
怪我咯原創
2017-06-19 14:45:561638瀏覽

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 開啟時可用。

以上是PHP中的魔術常數、預定義常數和預定義變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn