這篇文章主要介紹了關於PHP中Define和Const的區別,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
我們經常把不經常變的值定義成常數,常數一般用全部大寫來表示,前面不加美元符號,那麼define和const有什麼差別呢?
常數是一個簡單的標識符。在腳本執行期間該值不能改變(除了所謂的魔術常數,他們其實不是常數)。常量預設大小寫敏感。通常常數標識符總是大寫的。
可以用define()函數來定義常數。在php5.3.0以後,可以使用const關鍵字在類別定義的外部定義常數,php7可以定義陣列常數了,先前版本const關鍵字只能在類別(class)中使用。一個常數一旦被定義,就不能再改變或取消定義。
<?php // 以下代码在 PHP 5.3.0 后可以正常工作 const USERNAME = '周伯通'; echo USERNAME.PHP_EOL; echo constant("USERNAME"); const ZHOUUSERNAME = '周伯通九阴真经';define('MYUSERNAME','周伯通九阴真经2'); echo "<pre class="brush:php;toolbar:false">"; print_r(get_defined_constants()); ?>
常數和變數有以下不同:
1、const是一個語言結構;而define是一個函數,可以透過第三個參數來指定是否區分大小寫。 true表示大小寫不敏感,預設為false
2、const簡單易讀,編譯時比define快很多。
3、const可在類別中使用,用於類別成員常數定義,定義後不可修改;define不能在類別中使用,可用於全域變數
<?php class MyClass { const USER = '周伯通'; function showConstant() { echo self::USER . PHP_EOL; echo constant('USER'); // 注意:Warning: constant(): Couldn't find constant USER } } $class = new MyClass(); $class->showConstant();
4、const是在編譯時定義,因此必須處於最頂端的作用區域,不能在函數,循環及if條件中使用;而define是函數,也就是能呼叫函數的地方都可以使用
<?php $x = true; if ($x==1){ //const FOO = 'BAR'; // 无效的invalid } if ($x==1){ define('FOO', 'BAR'); // 有效的valid echo FOO; }
以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是PHP中Define和Const的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!