【問】在php中定義常量時,const與define的區別? php
【答】使用const使得代碼簡單易讀,const自己就是一個語言結構,而define是一個函數。另外const在編譯時要比define快不少。函數
(1).const用於類成員變量的定義,一經定義,不可修改。define不可用於類成員變量的定義,可用於全局常量。spa
(2).const可在類中使用,define不能。orm
(3).const不能在條件語句中定義常量。it
例如: 編譯
if (...){ 變量
const FOO = 'BAR'; // 無效的invalid margin
} top
if (...) { 語言
define('FOO', 'BAR'); // 有效的valid
}
(4).const採用一個普通的常量名稱,define能夠採用表達式做爲名稱。
const FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
define('BIT_' . $i, 1 << $i);
}
(5).const只能接受靜態的標量,而define能夠採用任何表達式。
例如:
const BIT_5 = 1 << 5; // 無效的invalid
define('BIT_5', 1 << 5); // 有效的valid
(6).const定義的常量時大小寫敏感的,而define可經過第三個參數(爲true表示大小寫不敏感)來指定大小寫是否敏感。
例如:
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR