Php xDebug-weird\uuuuu-DIR\uuuuuu常数
我正在编写一个PHP CLI应用程序,用于加载YAML文件。在xDebug会话中尝试执行此操作时: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
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
\uuuu DIR\uuuuu
始终是xdebug:
,这将始终导致文件中的false
(
)
有什么解决办法吗?设置
$dir=\uuuuuu dir如果(file_存在($dir./../../foo/bar')
,则使用。作为替代方法,将\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
,不是正确的文件。