我正在编写一个加载YAML文件的PHP CLI应用程序。在xDebug会话中尝试执行此操作时:
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
__DIR__
总是xdebug:
,它将始终从false
传到file_exists()
。
有什么工作吗?
答案 0 :(得分:9)
设置$dir = __DIR__;
并使用if (file_exists($dir . '/../../foo/bar')
。它会像那样工作。
答案 1 :(得分:0)
问题在于,您的调试器会显示错误的值,因为解析器已在脚本中替换了 DIR 。
整个解释可以在这里找到:
How can i get the PHP magic constant __FILE__ work with Eclipse and PDT
您获得的输出不正确。 FILE 是一个特殊常量 在解析器时获得评估。
答案 2 :(得分:-4)
作为替代方案,将__DIR__
常量替换为dirname(__FILE__)
函数
if (file_exists(dirname(__FILE__) . '/../../foo/bar')
{
/* ... */
}