PHP中Define和Const的區別

來源:互聯網
上載者:User
這篇文章主要介紹了關於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>";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';    // 無效的invalid}if ($x==1){    define('FOO', 'BAR'); // 有效valid    echo FOO;}

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.