为什么调用define()中的函数会破坏我的网站?

时间:2013-10-31 21:40:42

标签: php

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

define('FOO', get_foo());

但是,以下工作正常:

define('FOO', 'BAR');

2 个答案:

答案 0 :(得分:2)

你不能在define中使用函数,这不好。 Define用于制作常量。不得更改常量,在所有时间内必须具有相同的值。函数(如get_foo())可以返回不同的值。 Php认为你想把changable值放到常数上。尝试将此函数的结果放入变量:

$foo = get_foo();

答案 1 :(得分:1)

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

  

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