PHP常量的定義和用法


我們通常把不經常變的值定義成常量,常量一般用全部大寫來表示,前面不加美元符號,也可減少團隊開發的出錯。那么define和const有什么區別呢?


1、const是一個語言結構;而define是一個函數,可以通過第三個參數來指定是否區分大小寫。true表示大小寫不敏感,默認為false

define('PI', 3.14, true);

2、const簡單易讀,編譯時要比define快很多。

3、const可在類中使用,用於類成員常量定義,定義后不可修改;define不能在類中使用,可用於全局變量

復制代碼
class MyClass { const CONS = '常量值'; function showConstant() { echo self::CONS . PHP_EOL; echo constant('CONS'); } }
復制代碼

4、const是在編譯時定義,因此必須處於最頂端的作用區域,不能在函數,循環及if條件中使用;而define是函數,也就是能調用函數的地方都可以使用

if (...){ const FOO = 'BAR'; // 無效的invalid } if (...) { define('FOO', 'BAR'); // 有效的valid }

5、const只能用普通的常量名,define常量名中可以有表達式

const  FOO = 'BAR'; for ($i = 0; $i < 32; ++$i) { define('BIT_' . $i, 1 << $i); }

6、const定義的常量只能是靜態常量,define可以是任意表達式

const BIT_5 = 1 << 5;    // valid since PHP 5.6 define('BIT_5', 1 << 5); // 有效的valid


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM