だけでなく、ファイルが存在しない場合、それは少し愚かであり、ケースBの冗長(パスは解決できないか、ファイルがdocsごとに存在しない場合のrealpathがfalseを返すように)であります。
この文はFALSE
を返しますので:
realpath(__DIR__."/../file.php");
この:
file_exists(realpath(__DIR__."/../file.php"));
は本当にこのです:
file_exists(FALSE); //!
補足として:
realpath
は決して "偽"値を返しません。これにより、
== FALSE
が返されることはありませんが、
=== FALSE
(例えば、
NULL
、
''
、0、array())は返されません。どうして?実際のパスには、Windowsの* nixシステム(Mac、Unix、Linux)と
C:\
のルート—
/
への参照が常に含まれています。これらの2つの文字列は、 while、or forループ)。これはあなただけで行うことができますを意味します
if(!realpath(__DIR__."/../file.php")) // do something
それとも、あなたが実際にする必要がある場合することができます、実パスを持っている:
if(!($path = realpath(__DIR__."/../file.php")))
// file does not exist
else
// $path is now the full path to the file
詳細説明...良い! :) – AgelessEssence