27

I am writing an PHP CLI app which loads YAML files. When trying to do this within an Xdebug session:

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

__DIR__ allways is xdebug: which will allways lead to false from file_exists().

Is there any work around?

4

3 回答 3

14

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

于 2014-09-20T12:56:09.283 回答
0

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

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

如何让 PHP 魔术常量 __FILE__ 与 Eclipse 和 PDT 一起使用

您得到的输出不正确。FILE是一个特殊的常量,在解析器时被评估。

于 2016-11-02T12:15:52.317 回答
-5

作为替代方法,用函数替换你的__DIR__常量dirname(__FILE__)

if (file_exists(dirname(__FILE__) . '/../../foo/bar')
{
    /* ... */
}
于 2016-07-05T23:02:10.877 回答