基本语法

常量是一个简单值的标识符。如同其名称所暗示的,在脚本执行期间该值不能改变,除了所谓的魔术常量,它们其实不是常量。常量默认为大小写敏感,传统上常量标识符总是大写的。常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。如果使用了一个未定义的常量, PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样。此时将发出一个 E_NOTICE 级的错误。

常量和变量有如下不同:

  • 常量前面没有美元符号 $
  • 常量只能用 define() 函数或 const 关键字定义,而不能通过赋值语句。
  • 常量可以不用理会变量的作用域而在任何地方定义和访问。
  • 常量一旦定义就不能被重新定义或者取消定义。
  • 常量的值只能是标量,数组或资源。
<?php

define('FOO', 2 + 3);
define('BAR', <<<EOT
                 bar
                 EOT);
define('BAZ', [true, false]);
define('QUX', tmpfile());
var_dump(FOO); // int(5)
var_dump(BAR); // string(3) "bar"
var_dump(BAZ); // array(2) { [0]=> bool(true) [1]=> bool(false) }
var_dump(QUX); // resource(4) of type (stream)

也可以使用 const 关键字定义常量,但必须处于最顶端的作用区域。

<?php

const FOO = 'foo';
if (true) {
    const BAR = 'bar';
}
// PHP Parse error:  syntax error, unexpected 'const' (T_CONST).

results matching ""

    No results matching ""