Какое отличие Include - Require, и разница Include_once и Require_once

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

Include_once и Require_once разница та же самая, только once означает что этот файл будет подключен только один раз в коде. То есть если код большой, то вы можете забыть что уже подключили данный файл, это поможет этого избежать.

Поясним принципиальную разницу между конструкциями require и include на конкретном практическом примере. Создадим 10 файлов с именами l.txt, 2.txt и т. д. до 5.txt. Содержимое этих файлов - просто десятичные цифры 1, 2, 5 (по одной цифре в каждом файле). Создадим следующий сценарий РНР:

for($i = 1; $ i <= 5; $i++ ){
   include "$i.txt";
}


Проанализировав результат, можем сделать вывод, что каждый из файлов был включен по одному разу прямо во время выполнения цикла. Если поставить теперь вместо include require, то сценарий сгенерирует критическую ошибку (fatal error).

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

Таким образом, целесообразнее использовать конструкцию require там, где не требуется динамического включения файлов в сценарий, а конструкцию include - только с целью динамического включения файлов в код РНР-скрипта.



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы