PHP defined()为什么即使定义了常量也返回false?
我不明白为什么这段代码不是我想要的执行方式。 打印:PHP defined()为什么即使定义了常量也返回false?,php,Php,我不明白为什么这段代码不是我想要的执行方式。 打印: 123 bool(false) 因为您不是指名为TEST的常量,而是指TEST包含的任何内容 总而言之,这就是您正在做的(代码是正确的-没有123常量): 改为引用常量名称(用引号括起来): 可能是因为defined()需要字符串作为参数 var_dump( defined('TEST') ); 我们都说错了 define('TEST', 123); echo TEST; echo "\n"; var_dump( defined(TES
123
bool(false)
因为您不是指名为
TEST
的常量,而是指TEST
包含的任何内容
总而言之,这就是您正在做的(代码是正确的-没有123
常量):
改为引用常量名称(用引号括起来):
可能是因为defined()需要字符串作为参数
var_dump( defined('TEST') );
我们都说错了
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') );
不完全正确。如果您尝试
defined(TEST)
,但常量未定义,您将得到E_通知
,但它会将其转换为字符串TEST
,因此如果未定义,则与说defined('TEST')
@h2oooooo“bool defined(string$name)”相同如果名称给定的命名常量已定义,则返回TRUE,否则返回FALSE
define('TEST', 123);
var_dump( defined('TEST') ); // true, the TEST constant is indeed defined
// ^ ^ Quotation marks are important!
var_dump( defined('TEST') );
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') );