我們經常把不經常變的值定義成常量,常量一般用全部大寫來表示,前面不加美元符號,那么define和const有什么區別呢?
常量是一個簡單的標識符。在腳本執行期間該值不能改變(除了所謂的魔術常量,他們其實不是常量)。常量默認大小寫敏感。通常常量標識符總是大寫的。
可以用define()函數來定義常量。在php5.3.0以后,可以使用const關鍵字在類定義的外部定義常量,php7可以定義數組常量了,先前版本const關鍵字只能在類(html' target='_blank'>class)中使用。一個常量一旦被定義,就不能再改變或取消定義。
?php// 以下代碼在 PHP 5.3.0 后可以正常工作const USERNAME = 周伯通 echo USERNAME.PHP_EOL;echo constant( USERNAME const ZHOUUSERNAME = 周伯通九陰真經 define( MYUSERNAME , 周伯通九陰真經2 echo pre print_r(get_defined_constants());?
常量和變量有如下不同:
1、const是一個語言結構;而define是一個函數,可以通過第三個參數來指定是否區分大小寫。true表示大小寫不敏感,默認為false
2、const簡單易讀,編譯時要比define快很多。
3、const可在類中使用,用于類成員常量定義,定義后不可修改;define不能在類中使用,可用于全局變量
?phpclass 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 // 無效的invalidif ($x==1){ define( FOO , BAR // 有效的valid echo FOO;}
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
PHP中的ob_start用法解析
PHP empty()函數的說明
以上就是PHP中Define和Const的區別的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答