在 PHP 中比較 define() 和 const


眾所周知,define() 和 const 都用於在 PHP 指令碼中宣告常量。

語法

<?php
   const VAR = 'FOO'
   define('VAR', 'FOO');
?>

我們來討論一下這兩個常量之間的區別。

  • 這兩個常量之間最基本的區別是:const 在編譯時定義常量,而 define() 在執行時定義常量。
  • 我們不能使用 const 關鍵字在條件塊中宣告常量,但使用 define() 可以實現此目的。
  • <?php
       if(){
       const VAR = 'FOO'; // invalid
       }
       if(){
       define('VAR', 'FOO'); //valid
       }
    ?>
  • const 接受靜態標量(數字、字串或其他常量,如 true、false、null、__FILE__),而 define() 接受任何表示式。
  • const 始終區分大小寫,而 define() 允許透過將 true 作為第三個引數傳遞來定義不區分大小寫的常量。

  • const 還可以用在類或介面中來宣告類常量或介面常量,而 define() 不能用於此目的
  • <?php
       class abc{
          const VAR = 2; // valid
          echo VAR; // valid
       }
    // but
       class xyz{
          define('XUV', 2); // invalid
          echo XUV;// invalid
       }
    ?>
  • 上面的例子表明,我們可以用 const 關鍵字在類內部宣告常量,但不能用 define() 在類內部宣告常量。

更新於: 2019-12-31

4K+ 瀏覽次數

開啟你的 職業生涯

完成課程獲取認證

開始學習
廣告