不僅情況B冗餘(如真實路徑返回false如果路徑不能得到解決或文件不存在具體根據docs)時,如果該文件不存在,即有點傻。
由於這條語句將返回FALSE
:
realpath(__DIR__."/../file.php");
此:
file_exists(realpath(__DIR__."/../file.php"));
真的是這樣的:
file_exists(FALSE); //!
作爲附註:
realpath
將永遠不會返回「FALSY」值。我的意思是它永遠不會返回
== FALSE
但不是
=== FALSE
(例如
NULL
,
''
,0,array())。爲什麼?那麼,真正的路徑將總是包含對Windows *中* nix系統(Mac,Unix,Linux)和
C:\
中根—
/
的引用,並且當用作布爾值時,這兩個字符串將評估爲true(例如, while或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