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

标签 php

我不明白为什么这段代码的执行方式不是我想要的。

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/

相关文章:

php - 循环遍历mysql数据库

javascript - Webhoster 插入了一个破坏我的代码的 javascript 如何删除它?

javascript - 提交被 preventDefault() 阻止

php -  编码问题

php - 如何在Elasticsearch中编写全局查询?

php - 循环遍历 MySQL 数据库,使用 UTF-8 版本更改撇号

php - 创建用于在 WAMP 上安装的安装程序包

PHP获取月份的周数

php - MYSQL 和 PHP,其中任何相关行都包含字符串

php - Composer 更新 : Trying to access array offset on value of type null