在PHP中的一個常量一旦被定義,就不能再改變或者取消定義;常量有預定義常量(內部常量),和PHP默認定義的常量,當然也可以自定義常量。
以下是其中幾個預定義常量:(完整預定義常量,請參閱PHP手冊)
TRUE ,該常量是真值(true),為真(成立)。
FALSE ,該常量是偽值(false),為假(不成立)。
PHP_VERSION ,該常量是當前PHP程序的版本號,如 “5.2.17”。
PHP_OS ,該常量是當前執行PHP程序解析器的操作系統名稱,如 “Linux”。
DIRECTORY_SEPARATOR ,表示路徑分隔符,在Windowns上為“”,Linux上為“/”。
以下是其中幾個PHP默認常量:
E_ERROR ,這個常量指到最近的錯誤處。
E_WARNING ,這個常量指到最近的警告處。
E_PARSE ,這個常量為解析語法有潛在問題處。
E_NOTICE ,這個常式為發生不尋常但不一定是錯誤處。例如存取一個不存在的變量。
PHP 向它運行的任何腳本提供了大量的預定義常量。不過很多常量都是由不同的擴展庫定義的,只有在加載了這些擴展庫時才會出現,或者動態加載後,或者在編譯時已經包括進去了。
PHP有幾個稱為“魔術常量”的常量,它們的值隨著它們在代碼中的位置改變而改變。例如 “__LINE__ ”的值就依賴於它在腳本中所處的行來決定。這些特殊的常量不區分大小寫(但一般作大寫),如下
“__LINE__” 文件中該常量所在的行號。
“__FILE__” 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。__FILE__ 還包含了一個絕對路徑(如果是符號連接,則是解析後的絕對路徑)。
“__DIR__” 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜槓。(PHP 5.3.0中新增)
“__FUNCTION__” 函數名稱,自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。
“__CLASS__” 類的名稱,自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。
“__METHOD__” 類的方法名,返回該方法被定義時的名字(區分大小寫)。
“__NAMESPACE__” 當前命名空間的名稱(大小寫敏感),這個常量是在編譯時定義的。
當然在程序寫作時,以上的默認常量是不夠用。define() 的功能可以讓我們自行定義所需要的常量。見下例:
1234 <?php define('CONSTANT', '你好!'); echo CONSTANT; ?>
常量名和其它任何 PHP 標簽遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟著任何字母,數字或下劃線。
常量默認為大小寫敏感,按照慣例常量標識符總是大寫的,在腳本執行期間該值不能改變。
定義常量和定義變量的區別:
常量前面沒有美元符號($)
常量只能用 define() 函數定義,而不能通過賦值語句
常量可以不用理會變量范圍的規則而在任何地方定義和訪問
常量一旦定義就不能被重新定義或者取消定義
常量的值只能是標量