常數是一個簡單值的識別碼(名字)。如同其名稱所暗示的,在腳本執行期間該值不能改變(除了所謂的魔術常數,它們其實不是常數)。常量預設為大小寫敏感。通常常數標識符總是大寫的。
可以用 define() 函數來定義常數。在 PHP 5.3.0 以後,可以使用 const 關鍵字在類別定義的外部定義常數,而先前版本const 關鍵字只能在類別(class)中使用。一個常數一旦被定義,就不能再改變或取消定義。
常數只能包含標量資料(boolean,integer,float 和 string)。 可以定義 resource 常數,但應盡量避免,因為會造成不可預測的結果。
可以簡單的透過指定其名字來取得常數的值,與變數不同,不應該在常數前面加上 $ 符號。如果常數名稱是動態的,也可以用函數constant() 來取得常數的值。用get_defined_constants() 可以得到所有已定義的常數列表。
常數和變數有如下不同:
- 常數前面沒有美元符號($);
- 常數只能用define() 函數定義,而不能用賦值語句;
- 在任何地方定義和存取;
- 常數一旦定義就不能被重新定義或取消定義;
- 常數的值只能是標量。
Example #1 定義常數
1
,
"Hello world."
);
|
| // outputs "Hello world."
// outputs "Hello world."
|
4
// 輸出"Constant" 並發出一個提示性訊息
|
5?
| Example #2 使用關鍵字const 定義常量
|
1
</td> <td>// 以下程式碼在PHP 5.3.0 後可以正常運作<code> |
3
|
const CONSTANT =
|
'Hello World'
;
03
07 |
define( "2FOO" ,
"something" ); |
10
// 這樣就會與你的程式碼相衝突
|
11
| 7
"something"
);
12?在PHP中定義常數時,const與define的區別:
使用const使得程式碼簡單易讀,const本身就是一個語言結構,而define是一個函數。另外const在編譯時比define快很多。
(1).const用於類別成員變數的定義,一經定義,不可修改。 define不可用於類別成員變數的定義,可用於全域常數。
(2).const可在類別中使用,define不能。
(3).const不能在條件語句中定義常數。
例如:
constFOO = | 'BAR'
;
// 無效的invalid
|
3
|
(4).const採用一個普通的常數名稱,define可以採用表達式作為名稱。
1
|
const
FOO =
'BAR'
2
2
$i
, 1 $i ); |
4 (5).const只能接受靜態的標量,而define可以採用任何表達式。 例如:
|
1
constBIT_5 = 1
| // 無效的invalid
// 無效的invalid
2
|
// 有效的valid
| (6).const定義的常數時大小寫敏感的,而define可透過第三個參數(為true大小寫不敏感)來指定大小寫不敏感)寫是否敏感。 例如: |
1
define(
'FOO'
2
foo; // BAR
相關函數:
define — 定義一個常數
說明:
name :常數名稱。 知狀況的發生。以小寫
的方式儲存。 ) 透過name 傳回常數的值。此函數也適用class constants。常數是否存在
說明:
bool defined ( string $name )
檢查該名稱的常數是否已定義。 ) 函數只對constants 有效。 ;未定義則回傳FALSE。這包括那些由擴展以及由define()函數創建的常數
以上就介紹了php中的const和define差異(補充),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。