使用未定义常量 PHP ver 7.2

Use of undefined constant PHP ver 7.2

好像有很多关于这个主题的帖子,但是这个案例似乎不一样。

在PHP版本大于等于7.2以下代码:

if (!empty($_GET['rxdebug']) || AH_DEBUG){
    define(AH_DEBUG_MODE, true);
}else{
    define(AH_DEBUG_MODE, false);
}

将在第二个定义行上抛出错误 define(AH_DEBUG_MODE, false);

Use of undefined constant AH_DEBUG_MODE- assumed 'AH_DEBUG_MODE' (this will throw an Error in a future version of PHP) in some-file.php on line xxx

基本上第一个define接受,第二个不接受....难道代码只处理一次吗?或者某种预处理器 运行 预先抛出错误,就好像常量被定义了两次一样?

应该是:

define('AH_DEBUG_MODE', true);

具有:define(AH_DEBUG_MODE, true) 您强制 PHP 评估一个显然尚未定义的常量 AH_DEBUG_MODE 的值。

您的代码可以简化为:

define('AH_DEBUG_MODE', !empty($_GET['rxdebug']) || AH_DEBUG);

您的代码应该用引号将常量名称引起来。在 http://php.net/manual/en/function.define.php

查看手册
if (!empty($_GET['rxdebug']) || AH_DEBUG){
    define('AH_DEBUG_MODE', true);
}else{
    define('AH_DEBUG_MODE', false);
}