[PHP 手冊] – 常數(語法)
[PHP 手冊] – 常數(語法)
資料來源: http://www.ithome.com/html/soft/72723.htm
code2html:http://tohtml.com/
可以用 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() 函數。
常量和變數有如下不同:
- 常量前面沒有美元符號($);
- 常量只能用 define()函數定義,而不能通過賦值語句;
- 常量可以不用理會變數的作用域而在任何地方定義和訪問;
- 常量一旦定義就不能被重新定義或者取消定義;
- 常量的值只能是標量。
Example #1 定義常量
<?php
define
("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 來定義常量。
參見類常量。