PHP defined()为什么它返回false,即使定义了常量?

时间:2013-07-29 10:46:09

标签: php

我无法理解为什么执行此代码不是我想要的方式。

define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );

打印:

123
bool(false)

3 个答案:

答案 0 :(得分:21)

因为您没有引用名为TEST的常量 - 您指的是TEST包含的内容。

结束了,这就是你正在做的事情(代码是对的 - 没有123常数):

var_dump( defined(123) );

请参阅常量名称(用引号括起来):

var_dump( defined('TEST') );

答案 1 :(得分:3)

使用称错了

define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );//provide The constant name you are providing 123 so it not defined
//correct call would be
var_dump( defined('TEST') );

答案 2 :(得分:2)

可能是因为defined()需要一个字符串作为参数。

var_dump( defined('TEST') );