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

Rus*_*lan 14 php

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

define('TEST', 123);
echo TEST;
echo "\n";
var_dump( defined(TEST) );
Run Code Online (Sandbox Code Playgroud)

打印:

123
bool(false)
Run Code Online (Sandbox Code Playgroud)

h2o*_*ooo 24

因为你没有提到名字的常量TEST- 你指的是TEST包含的内容.

包装好了,这就是你正在做的(代码是对的 - 没有123常数):

var_dump( defined(123) );
Run Code Online (Sandbox Code Playgroud)

请改为使用常量名称(用引号括起来):

var_dump( defined('TEST') );
Run Code Online (Sandbox Code Playgroud)