我不明白为什么这段代码的执行方式不是我想要的。
define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );
打印:
123
bool(false)
最佳答案
因为您指的不是名为 TEST
的常量 - 您指的是 TEST
包含的任何内容。
结束,这就是您正在做的(代码是正确的 - 没有 123
常量):
define('TEST', 123);
var_dump( defined(TEST) ); // turns into the below statement
var_dump( defined(123) ); // false - no 123 constant
改为引用常量名称(用引号引起来):
define('TEST', 123);
var_dump( defined('TEST') ); // true, the TEST constant is indeed defined
// ^ ^ Quotation marks are important!
关于PHP defined() 为什么它返回 false,即使定义了常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922009/