Четверг , 25 Апрель 2024
ДомойПубликацииphp: функции подключения скриптов

php: функции подключения скриптов

php

в php существует 4 инструкции, с помощью которых можно подключать скрипты: include, include_once, require, require_once. иногда можно встретить вопрос: что лучше. а некоторые решили для себя, что это всё одно и тоже, и пользуются тем, что больше нравится. между тем, инструкции несут разную смысловую нагрузку, а значит и использоваться должны в разных местах. давайте же разберёмся, наконец, в их отличиях и методах использования.

основное отличие инструкций с *_once — указанный файл будет подключён лишь 1 раз, причём, если ранее данный файл уже подключался к скрипту с помощью include/require, вызов любого следующего — include_once/require_once — будет проигнорирован. т. е. файл, уже однажды использумый, более использоваться не будет.

таким образом, если требуется подключить файл с определением собственных функций, делать это требуется строго инструкцией include_once или require_once. в принципе, можно возпользоваться и include/require, если файл с определениями функций будет подключаться заведомо 1 раз, но так бывает далеко не всегда. простой пример возможного конфликта: вы, используя библиотеку с группой функций, которую подключаете с помощью require, пишете свой плагин для системы WordPress. кто-то, используя туже самую библиотеку, подключаемую тем же самым require, пишет свой плагин и выкладывает его на всеобщее обозрение. вы скачиваете данный плагин, устанавливаете его, и при попытке загрузить страничку блога получате ошибку — повторное объявление функции. ошибки удалось бы избежать, если бы каждый для подключения пользовался фукнцией require_once. с этим, думаю, понятно.

а чем же принципиально отличается require от include? и тут всё довольно просто. если вы знаете, что какой-то файл вам 100% потребуется для работы скрипта, однозначно нужно делать выбор в пользу require, код которого анализируется транслятором во время подготовки файла (перевода его в байт-код, т. е. код, с которым будет работать php). после успешного перевода настаёт очередь интерпретатора выполнинить полученный код. если бы использовался include, то транслятор php пропустил бы данный участок. после этого в работу включился бы интерпретатор, который, дойдя до подключаемого файла, остановился бы и передал его на отработку транслятору, что было бы медленнее. поэтому include нужно применять, в первую очередь, в условиях. если в зависимости от заданного условия должен подлючаться тот или иной файл, require использовать не следует, т. к. в этом случае замедление в работы программы в целом будет ещё больше. почему? да потому, что встретив require, транслятор, по сути, вставляет содержимое файла целиком, после чего переводит его в байт-код, а с помощью include можно избавиться от возможных издержек машинного времени (а также оперативной памяти, дисковой подсистемы и, возможно, промежуточных запросов к другим серверам), связанных с подключением всех файлов в скрипте.

есть между require и include ещё одна разница, которую нужно просто иметь ввиду. если подключается несуществующий файл с помощью require, работа сценария завершается с ошибкой Fatal error. при использовании include вырабатывается ошибка типа Warning и выполнение сценария продолжится.

Рейтинг: 0

Автор публикации

2 070
не в сети 12 месяцев

x64 (aka andi)

Комментарии: 2893Публикации: 405Регистрация: 02-04-2009
Так себеНеплохоХорошоЗамечательноСупер! (Оценок пока нет)
Загрузка...

Оставить комментарий

Политика конфиденциальности

Наш сайт использует файлы cookies, чтобы улучшить работу и повысить эффективность сайта. Продолжая работу с сайтом, вы соглашаетесь с использованием нами cookies и политикой конфиденциальности.

Принять