比较 PHP 中的 define() 和 const

phpprogrammingserver side programming

众所周知,define() 和 const 都用于在 PHP 脚本中声明常量。

语法

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

我们来讨论一下这两者的区别。

  • 这两者之间的基本区别在于const在编译时定义常量,而define()在运行时定义常量。
  • 我们不能使用const关键字在条件块中声明常量,而使用define()我们可以实现这一点。
  • <?php
       if(){
       const VAR = 'FOO'; // 无效
       }
        if(){
       define('VAR', 'FOO'); //有效
       }
    ?>
    
  • const 接受静态标量(数字、字符串或其他常量,如 true、false、null、__FILE__),而 define() 接受任何表达式。
  • consts 始终区分大小写,而 define() 允许您通过将 true 作为第三个参数传递来定义不区分大小写的常量。

  • const 也可以在类或接口中使用,以声明类常量或接口常量,而 define() 则因此不能使用
  • <?php
       class abc{
          const VAR = 2; // 有效
          echo VAR; // 有效
       }
    // 但
       class xyz{
          define('XUV', 2); // 无效
          echo XUV;// 无效
       }
    ?>
    
  • 上面的例子表明,我们可以使用 const 关键字在类中声明常量,但 define() 不能用于在类中声明常量。

相关文章