27

YAML ファイルをロードする PHP CLI アプリを作成しています。Xdebug セッション内でこれを実行しようとすると、次のようになります。

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

__DIR__allways は、常にfromxdebug:につながるものです。falsefile_exists()

回避策はありますか?

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 に答える