Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未定义常量PHP 7.2版的使用_Php_Php 7.2 - Fatal编程技术网

未定义常量PHP 7.2版的使用

未定义常量PHP 7.2版的使用,php,php-7.2,Php,Php 7.2,看起来有很多关于这个话题的帖子,但是这个案例似乎有所不同 在大于或等于7.2的PHP版本中,以下代码: if (!empty($_GET['rxdebug']) || AH_DEBUG){ define(AH_DEBUG_MODE, true); }else{ define(AH_DEBUG_MODE, false); } 将在第二个define行defineAH\u DEBUG\u MODE上抛出错误,false 基本上第一个定义被接受,第二个定义不……代码不是只处理一次吗?

看起来有很多关于这个话题的帖子,但是这个案例似乎有所不同

在大于或等于7.2的PHP版本中,以下代码:

if (!empty($_GET['rxdebug']) || AH_DEBUG){
    define(AH_DEBUG_MODE, true);
}else{
    define(AH_DEBUG_MODE, false);
}
将在第二个define行defineAH\u DEBUG\u MODE上抛出错误,false

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

应该是:

define('AH_DEBUG_MODE', true);
Having:defineAH_DEBUG_MODE,true强制PHP计算常量AH_DEBUG_MODE的值,该值显然尚未定义

您的代码可以简化为:

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

define('AH_DEBUG_MODE', true);
Having:defineAH_DEBUG_MODE,true强制PHP计算常量AH_DEBUG_MODE的值,该值显然尚未定义

您的代码可以简化为:

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

您的代码应该将常量的名称用引号括起来。查看以下位置的手册:


您的代码应该将常量的名称用引号括起来。查看以下位置的手册:


常数名称周围应该有引号常数名称周围应该有引号谢谢mate,为什么这只发生在第二个定义上?因为!空$_GET['rxdebug']| | AH| u DEBUG的计算结果为false,因此执行else语句。谢谢,伙计,为什么只在第二个定义中出现这种情况?因为!空$_GET['rxdebug']| | AH| u DEBUG的计算结果为false,因此执行else语句。