@Freerade

Для чего использовать __DIR__?

В чем смысл использовать __ DIR__? Типа есть же аналог ../ перед реквайером ставишь и всё. А так получается __DIR__ . "/../path/file.php"
Тоже самое не?
  • Вопрос задан
  • 560 просмотров
Решения вопроса 2
Adamos
@Adamos
Если хоть чуть-чуть почитать документацию, трудно не заметить, что при указании относительного пути пых ищет файл в подходящих местах (которые, кстати, не обязательно совпадают с тем, что вы имели в виду).
При указании же абсолютного - не ищет.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Относительный каталог ../ будет браться относительно текущего рабочего каталога (cwd), а не относительно файла, в котором он указан.
В случае с __DIR__ получаем абсолютный каталог, который одинаков независимо от cwd.
Пример без __DIR__

main.php
<?php
require 'test/foo.php';

test/foo.php
<?php
require './buz.php';

test/buz.php
<?php
echo 'buz', PHP_EOL;

$ php main.php
PHP Fatal error:  Uncaught Error: Failed opening required './buz.php'


Пример с __DIR__

main.php
<?php
require __DIR__ . '/test/foo.php';

test/foo.php
<?php
require __DIR__ . '/buz.php';

test/buz.php
<?php
echo 'buz', PHP_EOL;

$ php main.php
buz

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы