dqzlqfqeh845799833 2019-02-28 15:18 采纳率: 0%
浏览 440
已采纳

使用未定义的常量PHP ver 7.2

It looks like there are quite some posts on this topic, however this case seems to be different.

In PHP version greater than or equal to 7.2 the following code:

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

Will throw an error on second define line 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

Basically the first define is accepted, the second one no....Isn't the code processed one time only? Or does a sort of pre-processor run beforehand throwing the error as if the constant is defined twice?

  • 写回答

2条回答 默认 最新

  • dtp87205 2019-02-28 15:19
    关注

    Should be:

    define('AH_DEBUG_MODE', true);
    

    Having: define(AH_DEBUG_MODE, true) you force PHP to evaluate the value of a constant AH_DEBUG_MODE which is obviously not defined yet.

    Your code can be simplified to:

    define('AH_DEBUG_MODE', !empty($_GET['rxdebug']) || AH_DEBUG);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?