【問】在php中定義常量時,const與define的區(qū)別?
【答】使用const使得代碼簡單易讀,const本身就是一個語言結(jié)構(gòu),而define是一個函數(shù)。
另外const在編譯時要比define快很多。
(1).const用于類成員變量的定義,一經(jīng)定義,不可修改。define不可用于類成員變量的定義,可用于全局常量。
(2).const可在類中使用,define不能。
(3).const不能在條件語句中定義常量。 例如: if (...){ const FOO = 'BAR'; // 無效的invalid } if (...) { define('FOO', 'BAR'); // 有效的valid }
(4).const采用一個普通的常量名稱,define可以采用表達式作為名稱。 const FOO = 'BAR'; for ($i = 0; $i < 32; ++$i) { define('BIT_' . $i, 1 << $i); }
(5).const只能接受靜態(tài)的標量,而define可以采用任何表達式。
例如: const BIT_5 = 1 << 5; // 無效的
invalid define('BIT_5', 1 << 5); // 有效的valid
(6).const定義的常量時大小寫敏感的,而define可通過第三個參數(shù)(為true表示大小寫不敏感)來指定大小寫是否敏感。
例如: define('FOO', 'BAR', true); echo FOO; //
BAR echo foo; // BAR