YAML ファイルをロードする PHP CLI アプリを作成しています。Xdebug セッション内でこれを実行しようとすると、次のようになります。
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
__DIR__
allways は、常にfromxdebug:
につながるものです。false
file_exists()
回避策はありますか?
YAML ファイルをロードする PHP CLI アプリを作成しています。Xdebug セッション内でこれを実行しようとすると、次のようになります。
if (file_exists(__DIR__ . '/../../foo/bar')
{
/* ... */
}
__DIR__
allways は、常にfromxdebug:
につながるものです。false
file_exists()
回避策はありますか?
を設定$dir = __DIR__;
して使用しますif (file_exists($dir . '/../../foo/bar')
。そのように動作します。
問題は、スクリプト内のDIRがパーサーによって既に置き換えられているため、デバッガーが間違った値を表示することです。
全体の説明はここにあります:
PHPマジック定数__FILE__をEclipseとPDTで動作させるにはどうすればよいですか
得られる出力は間違っていません。FILEは、パーサー時に評価される特別な定数です。
__DIR__
別の方法として、定数をdirname(__FILE__)
関数に置き換えます
if (file_exists(dirname(__FILE__) . '/../../foo/bar')
{
/* ... */
}