include, include_once, require или require_once? - PullRequest
30 голосов
/ 23 августа 2010

У меня есть PHP-файл, в котором я определил переменные доступа к серверу, а также mysql_connect и mysql_select_db, поскольку эти функции регулярно используются почти на каждой странице в бэкэнде, в то время как я использую include(), что идеальноработая для меня сейчас, какой метод или функцию вы бы предложили, и я хотел бы знать, есть ли какой-либо недостаток, если я использую include() или это безопасно использовать?

Редактировать: Имея в виду, я 'Я буду использовать переменную $_SESSION тоже.

Ответы [ 7 ]

44 голосов
/ 23 августа 2010

Единственное различие между ними состоит в том, что require и его сестра require_once выдают фатальную ошибку, если файл не найден, тогда как include и include_once показывают только предупреждение и продолжают загружать остальныестраница.Если вы не хотите, чтобы PHP пытался загрузить остальную часть вашей страницы без информации базы данных (что я бы предположил), используйте require_once.Вам не нужно включать файл более одного раза, поэтому нет необходимости использовать обычную функцию require.

24 голосов
/ 06 августа 2016

Функциональная работа: Все функции выполняют аналогичную работу. Все функции будут включать и оценивать конкретный файл при выполнении кода.

Функциональная разница:

include против include_once: Существует только одно различие между include () и include_once (). Если код из файла уже был включен, он не будет включен снова, если мы используем include_once (). Средства include_once () включают файл только один раз за раз.

include vs require: , если include () не может найти указанный файл в этом месте, он выдаст предупреждение, однако не остановит выполнение скрипта Для этого же сценария require () выдаст фатальную ошибку и остановит выполнение скрипта.

require vs require_once: Существует только одно различие между require () и require_once (). Если код из файла уже включен, он не будет включен снова, если мы используем require_once (). Означает, что require_once () включает файл только один раз за раз.

Чтобы получить подробные знания с примером, пожалуйста, просмотрите эти удивительные статьи
(1) http://www.readmyviews.com/include-vs-include-once/
(2) http://www.readmyviews.com/include-vs-require/

2 голосов
/ 23 августа 2010

Для переменных соединения с базой данных предпочтительнее использовать функцию require_once ().Если по какой-либо причине соединение не удается, вы можете показать сообщение об ошибке.

1 голос
/ 23 августа 2010

Если ваша страница не будет работать без подключения к БД, то require_once будет единственно верным вариантом (так как вы не хотите загружать эти настройки дважды, их достаточно загрузить один раз).Include попытается загрузить вашу страницу, даже если файл настроек недоступен.

0 голосов
/ 09 марта 2014

Включить Оператор include () включает и оценивает указанный файл.

Включить один раз Оператор include_once () включает и оценивает указанный файл во время выполнения сценария. Это поведение похоже на оператор include (), с той лишь разницей, что если код из файла уже был включен, он не будет включен снова. Как следует из названия, он будет включен только один раз.

Требуется require () и include () идентичны во всех отношениях, за исключением того, как они обрабатывают сбой. Они оба выдают предупреждение, но требуют () приводит к фатальной ошибке. Другими словами, не стесняйтесь использовать require (), если хотите, чтобы отсутствующий файл остановил обработку страницы.

Требуется один раз Оператор require_once () включает и оценивает указанный файл во время выполнения скрипта. Это поведение похоже на оператор require (), с той лишь разницей, что, если код из файла уже включен, он не будет включен снова.

0 голосов
/ 23 августа 2010

Вы должны использовать include_once (), если вы включаете его более одного раза на страницу.

0 голосов
/ 23 августа 2010

require () лучше для вас. Потому что с требованием включает файл перед компиляцией скрипта. inluce () используется в динамических в том числе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...