Есть ли разница между DIR и dirname(FILE) в PHP?
Это выглядит так же для меня,но я не уверен,
потому что есть много проектов, которые использует dirname(__FILE__)
.
1 ответ:
их результат точно такой же; так что, никакой разницы.
Например, две следующие строки :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.)