Xdebug 奇怪的__DIR__常量

2022-08-30 16:12:16

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

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

__DIR__allways is will allways to from .xdebug:falsefile_exists()

有没有解决方法?


答案 1

设置并使用 。它将像这样工作。$dir = __DIR__;if (file_exists($dir . '/../../foo/bar')


答案 2

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

完整的解释可以在这里找到:

我如何获得PHP魔术常数__FILE__Eclipse和PDT一起工作

您获得的输出不正确。FILE 是一个特殊常量,在解析器时进行计算。


推荐