Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/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 xDebug-weird\uuuuu-DIR\uuuuuu常数_Php_Xdebug_Magic Constants - Fatal编程技术网

Php xDebug-weird\uuuuu-DIR\uuuuuu常数

Php xDebug-weird\uuuuu-DIR\uuuuuu常数,php,xdebug,magic-constants,Php,Xdebug,Magic Constants,我正在编写一个PHP CLI应用程序,用于加载YAML文件。在xDebug会话中尝试执行此操作时: if (file_exists(__DIR__ . '/../../foo/bar') { /* ... */ } \uuuu DIR\uuuuu始终是xdebug:,这将始终导致文件中的false() 有什么解决办法吗?设置$dir=\uuuuuu dir

我正在编写一个PHP CLI应用程序,用于加载YAML文件。在xDebug会话中尝试执行此操作时:

if (file_exists(__DIR__ . '/../../foo/bar')
{
    /* ... */
}
\uuuu DIR\uuuuu
始终是
xdebug:
,这将始终导致
文件中的
false


有什么解决办法吗?

设置
$dir=\uuuuuu dir
,则使用

作为替代方法,将
\uuu dir_uu
常量替换为
dirname(\uu file_u)
函数

if (file_exists(dirname(__FILE__) . '/../../foo/bar')
{
    /* ... */
}

问题是调试器向您显示了一个错误的值,因为解析器已经在脚本中替换了DIR

整个解释可以在这里找到:

您得到的输出没有错误。FILE是一个特殊常数 在分析程序时进行计算


你不是通过
eval()
运行代码,是吗?@Spudley不是,我只是“正常”执行代码。当我不使用xDebug时,它就像一个符咒。但是一个不可调试的应用程序并没有那么好:(嗯,如果你是通过eval运行的,答案应该是per(由xDebug的作者发布)。这听起来确实像是同一个问题。如果执行
$dir=\uuuuu dir\uuuu;如果(文件存在($dir./../../foo/bar')…
,会发生什么情况?你知道了吗?这应该设置为答案!这不起作用,
\uuuu file\uuu
返回
xdebug://debug-eval
,不是正确的文件。