在php中定義常量時,const與define的區別

【問】在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

相關文章
相關標籤/搜索