Мало того, что регистр B избыточен (поскольку realpath возвращает false, если путь не может быть разрешен или файл не существует согласно документам ), если файл не существует, это немного глупо .
Так как это утверждение вернет FALSE
:
realpath(__DIR__."/../file.php");
Это:
file_exists(realpath(__DIR__."/../file.php"));
Это действительно так:
file_exists(FALSE); //!
<ч />
В качестве примечания: realpath
никогда не вернет значение «ЛОЖЬ». Под этим я подразумеваю, что он никогда не вернет то, что == FALSE
, но не === FALSE
(например, NULL
, ''
, 0, array ()). Зачем? Ну, реальный путь всегда будет включать ссылку на корень & mdash; /
в * nix системах (Mac, Unix, Linux) и C:\
в Windows, и эти две строки будут иметь значение true при использовании в качестве логического значения (скажем, в цикле if, 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