|
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 94
|
|
Поясните, почему предпочтительнее указывать путь через __DIR__?23.02.2015, 12:37. Показов 3555. Ответов 5
Метки нет (Все метки)
Здравствуйте, объясните мне почему предпочтительнее указавать путь вот так "__DIR__."/index.php"", чем как обычно "site/index.php". Зачем лишнее писать?
0
|
|
| 23.02.2015, 12:37 | |
|
Ответы с готовыми решениями:
5
Как указывать путь к файлам? Через что предпочтительнее подключить монитор, через HDMI или Display Port?
|
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
|
| 23.02.2015, 12:43 | |
|
Это разные вещи: абсолютный путь и URL. И потом, __DIR__ возвращает только имя папки.
0
|
|
|
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 94
|
|
| 23.02.2015, 12:50 [ТС] | |
|
Мой препод почему-то орёт на то, когда Я указываю ссылку вторым способом, говорит, мол нужно первым,т.е. через __DIR__, Я не дождавшись следующего урока, решил сам узнать...Вот скажем вот здесь:require_once "models/index_model.php"; он говорит что __DIR__ нужно использовать. Для чего?Ведь и так всё работает...
0
|
|
|
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
|
||
| 23.02.2015, 14:28 | ||
|
1
|
||
| 23.02.2015, 14:35 | ||||||||||||||||||||||||||||||||
Сообщение было отмечено Кателевский ВН как решение
Решение
разница в том, что с __DIR__ путь раскрывается в абсолютный, когда без него вы используете относительный.
При использовании относительного пути происходит поиск файлов по всем директориям, которые указаны в переменной include_path. При указании абсолютного пути вы абсолютно точно идентифицируете путь к файлу, поэтому поиска не происходит -- интерпретатор просто пытается открыть один-единственный файл. Теперь представьте, что у вас такая структура каталогов:
В таком случае, при выполнении
Если бы вы написали
Одним словом, абсолютный путь позволяет найти конкретный файл быстрее в такой ситуации. Однако, в реальности в include_path обычно прописано всего несколько директорий, и он очень часто начинается с директории '.'(т.е. текущая директория), поэтому лишних проверок не должно быть, если файл находится в текущем каталоге. Можете попробовать сделать бенчмарк и проверить, однако я сомневаюсь что там будет что-то, кроме флукутаций, ибо операции ввода-вывода будут происходить заведомо дольше конкатенации строк Не по теме: впрочем, если дело происходит в ramfs, то, может, что-то и получится замерить Короче говоря, в реальности разница несущественна, если, конечно, у вас не очень много директорий в include_path. Тем не менее, почему-то с давних пор считается моветоном указывать относительный путь, наверное поэтому ваш преподаватель и ругается, хотя в реальности это правило акутально, по большей части, лишь для небольших standalone-библиотек, пути к которым в include_path запихивать как-то не комильфо, особенно в начало, да и в общем-то не имеет особого смысла в них использовать относительные пути -- в 99.9% случаев им нужен лишь конкретный файл, вычислить абсолютный путь которого не составляет труда. А вот в каком-нибудь крупном фреймворке использование include-ов с относительными путями могло бы помочь: например, когда есть несколько директорий с одинаковой структурой (к примеру, default-шаблоны движка и локальные, для конкретного сайта), можно прописать их обе в include_path и include-ить файлы из них по относительному пути. В подтверждение того, что отказ от абсолютных директорий не так уж сильно влияет на производительность, является то, что многие из библиотек pear их не используют. Есть, однако, и еще один 'недостаток' от использования относительных путей: появляется своего рода неоднозначность, когда существует множество файлов с одинаковым именем. Как, например, тот же
Не по теме: разумеется, если у вас множество папок с этим файлом, и если они указаны в include_path Не по теме: Я в курсе, что не совсем прав насчет относительных и абсолютных путей, и что путь './file.php' тоже будет относительным, однако он не задействует include_path. В контексте данного сообщения следует воспринимать этот путь как 'абсолютный', ибо он тоже однозначно указывает путь, относительно текущего каталога. Под относительными путями я имел ввиду лишь те, обработка которых происходит с учетом include_path.
2
|
||||||||||||||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 94
|
|
| 23.02.2015, 15:05 [ТС] | |
|
Благодарю, за развёрнутое разъяснение, всё понял.
0
|
|
| 23.02.2015, 15:05 | |
|
Помогаю со студенческими работами здесь
6
Поясните цикл парсинга даты из вывода команды Dir Как программно указывать путь к базе данныx? Как правильно указывать путь css селекторов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|