Для меня это выглядит одинаково, но я не уверен,
потому что есть много проектов, которые используют dirname(__FILE__)
.
Их результат точно такой же ; поэтому нет никакой разницы в этом.
Например, две следующие строки:
var_dump(dirname(__FILE__)); var_dump(__DIR__);
Оба будут давать одинаковый результат:
string '/home/squale/developpement/tests/temp' (length=37)
Но есть, по крайней мере, две отличия:
__DIR__
существует только с PHP> = 5.3
dirname(__FILE__)
более широко используется __DIR__
оценивается во время компиляции, тогда как dirname(__FILE__)
означает вызов функции и оценивается во время выполнения
__DIR__
– это (или должно быть) быстрее. Как в качестве ссылки, см. Раздел « Магические константы » руководства (цитирование) :
__DIR__
: каталог файла.
Если используется внутри include, возвращается каталог включенного файла.
Это эквивалентноdirname(__FILE__)
.
Это имя каталога не имеет завершающей косой черты, если это не корневая директория.
(Добавлено в PHP 5.3.0.)