看起来这个主题有很多帖子,但是这种情况似乎有所不同.
在大于或等于7.2的PHP版本中,以下代码:
if (!empty($_GET['rxdebug']) || AH_DEBUG){
define(AH_DEBUG_MODE, true);
}else{
define(AH_DEBUG_MODE, false);
}
Run Code Online (Sandbox Code Playgroud)
将在第二个定义行上抛出错误 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
Run Code Online (Sandbox Code Playgroud)
基本上第一个定义被接受,第二个定义没有....是不是代码只处理了一次?或者某种预处理器预先运行抛出错误,好像常量定义了两次?
应该:
define('AH_DEBUG_MODE', true);
Run Code Online (Sandbox Code Playgroud)
拥有:define(AH_DEBUG_MODE, true)你强制PHP来评估一个AH_DEBUG_MODE显然尚未定义的常量的值.
您的代码可以简化为:
define('AH_DEBUG_MODE', !empty($_GET['rxdebug']) || AH_DEBUG);
Run Code Online (Sandbox Code Playgroud)