0

以下内容严重破坏了我的网站:

define('FOO', get_foo());

但是,以下工作正常:

define('FOO', 'BAR');
4

2 回答 2

2

你不能在定义中使用函数,这不好。定义用于制作常量。常量不得更改,必须始终具有相同的值。函数,如 get_foo(),可以返回不同的值。Php 认为您想将可变值赋予常量。尝试将此函数放入变量的结果:

$foo = get_foo();
于 2013-10-31T21:53:28.347 回答
1

因为define()期望常量的值而不是函数的返回值:

常数的值;只允许标量和空值。标量值是整数、浮点数、字符串或布尔值。可以定义资源常量,但不建议这样做,这可能会导致不可预知的行为。

于 2013-10-31T21:42:56.087 回答