Есть ли разница между __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.)
Ответ 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.)