PHP 向它啟動並執行任何指令碼提供了大量的預定義常量 。不過很多常量都是由不同的擴充庫定義的,只有在載入了這些擴充庫時才會出現,或者動態載入後,或者在編譯時間已經包括進去了。 有五個魔術常量根據它們使用的位置而改變。例如 __LINE__ 的值就依賴於它在指令碼中所處的行來決定。這些特殊的常量不區分大小寫,如下: 表 13-1. 幾個 PHP 的“魔術常量” 名稱 說明 __LINE__ 檔案中的當前行號。 __FILE__ 檔案的完整路徑和檔案名稱。如果用在包含檔案中,則返回包含檔案名稱。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。 __FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。 __CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。 __METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 -------------------------------------------------------------------------------------------------------- 1 : //魔術常量 2 : __LINE__ //檔案中的當前行號(包含注釋行) 3 : __FILE__ //檔案的完整路徑和檔案名稱 4 : __FUNCTION__ //當前所在的函數名稱(PHP 4.3.0 新增) 5 : __CLASS__ //當前所在的類的名稱( PHP 4.3.0 新增) 6 : __METHOD__ //當前所在的類的方法名( PHP 5.0.0 新增) 7 : //核心預定義常量 8 : PHP_VERSION //PHP版本資訊和phpversion()結果相同 9 : PHP_OS //作業系統資訊 一些典型的應用如下: 1: //操心系統類別型判斷 2: if (substr(PHP_OS, 0, 3) == 'WIN') { 3: define('OS_WINDOWS', true); 4: } else { 5: define('OS_WINDOWS', false); 6: } 1: //擷取當前檔案的檔案名稱和路徑 2: echo basename(__FILE__); 3: echo dirname(__FILE__); 核心預定義常量 核心預定義常量 -- 在 PHP 核心、Zend 和 SAPI 模組中定義的常量 描述 這些常量在 PHP 的核心中定義。它包含 PHP、Zend 引擎和 SAPI 模組。 PHP_VERSION (string) PHP_OS (string) DEFAULT_INCLUDE_PATH (string) PEAR_INSTALL_DIR (string) PEAR_EXTENSION_DIR (string) PHP_EXTENSION_DIR (string) PHP_BINDIR (string) PHP_LIBDIR (string) PHP_DATADIR (string) PHP_SYSCONFDIR (string) PHP_LOCALSTATEDIR (string) PHP_CONFIG_FILE_PATH (string) PHP_OUTPUT_HANDLER_START (integer) PHP_OUTPUT_HANDLER_CONT (integer) PHP_OUTPUT_HANDLER_END (integer) E_ERROR (integer) E_WARNING (integer) E_PARSE (integer) E_NOTICE (integer) E_CORE_ERROR (integer) E_CORE_WARNING (integer) E_COMPILE_ERROR (integer) E_COMPILE_WARNING (integer) E_USER_ERROR (integer) E_USER_WARNING (integer) E_USER_NOTICE (integer) E_ALL (integer) 補充: $HTTP_POST_VARS --使用者透過POST方法傳遞的資料 $HTTP_GET_VARS --使用者透過GET方法傳遞的資料 $HTTP_COOKIE_VARS -- 送到目前程式的所有COOKIE $HTTP_POST_FILES -- 包含所有使用PHP檔案上傳功能傳遞的檔案資訊 $HTTP_ENV_VARS -- 包含所有環境變數 $HTTP_SERVER_VARS -- 包含所有伺服器送給PHP的變數 $HTTP_SESSION_VARS -- 包含所有目前SESSION的變數 在PHP4.1,上面的變數都自動有比較簡短的版本可用,分別是 $_POST $_GET $_COOKIE $ENV $_SERVER 另外$_REQUEST包含$_POST,$_GET,$_COOKIE |