常量我們可以理解為值不變的量。常量只要被定義了,在程式指令碼的其他任何地方都不能改變。
可以用 define() 函數來定義常量,在 PHP 5.3.0 以後,可以使用 const 關鍵字在類定義之外定義常量。一個常量一旦被定義,就不能再改變或者取消定義。
常量只能包含標量資料( boolean , integer , float 和 string )。可以定義 resource 常量,但應盡量避免,因為會造成不可預料的結果。
可以簡單的通過指定其名字來取得常量的值,與變數不同,不應該在常量前面加上 $ 符號。如果常量名是動態,也可以用函數 constant() 來擷取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。
Note: 常量和(全域)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $foo[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常量)。如果只想檢查是否定義了某常量,用 defined() 函數。
Example #1 定義常量
<?phpdefine ( "CONSTANT" , "Hello world." );echo CONSTANT ; // outputs "Hello world."echo Constant ; // 輸出 "Constant" 並發出一個提示層級錯誤資訊?>
Example #2 使用關鍵字 const 定義常量
<?php// 以下代碼在 PHP 5.3.0 後可以正常工作const CONSTANT = 'Hello World' ;echo CONSTANT ;?>
Note:
和使用 define() 來定義常量相反的是,使用 const 關鍵字定義常量必須處於最頂端的作用地區,因為用此方法是在編譯時間定義的。這就意味著不能在函數內,迴圈內以及 if 語句之內用 const 來定義常量。