1. 程式人生 > >PHP 中的 常量 變數 魔術常量 ...

PHP 中的 常量 變數 魔術常量 ...

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