Офис НП AMWAY в Ярославле
Купить продукцию Амвей в Ярославле
На карте Купить AMWAY в ЯрославлеПриобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » include, include_once, require, require_once- в чем же отличия?
Сниппет
PHP: Попробуем вместе понять, что это за конструкции, когда и какую из них использовать предпочтительнее.
include, include_once, require, require_once- в чем же отличия?
Опубликовал  Pisatel Добавлено  16-02-2013 17:26 16 Февраль 2013 17:26:41 2351  Прочтений 2351 Прочтений  3 Комментариев 3 Комментариев
 printer
Во- первых, многие называют это Функциями( я тоже был среди вас, не парьтесь), однако на самом деле- это конструкции включений. В чем же основные различия? Попробуем разобраться.

Конструкция require



По-простому, она позволяет подключить файл в сценарий PHP до исполнения сценария. При запуске программы интерпретатор просто заменит инструкцию на содержимое "реквариваемого" файла, который может содержать как .html- код, так и PHP. Это весьма удобно для подключения всевозможных шаблонов и т.п.

Далее. Конструкция require поддерживает подключение удаленных файлов, то есть если ты сделаешь вот так
PHP
  1. <?php
  2. require ;
  3. ?>
, то эта конструкция сработает.

Конструкция include



Данная конструкция также предназначена для подключения файлов, однако, в отличии от require, делает она это во время исполнения сценария PHP. Далее я приведу пример с сайта www.php.su, так как он весьма наглядно показывает различия.

Создадим 10 файлов: 1.txt, 2.txt ... 10.txt, содержащих по одной цифре в каждом, от 1 до 10. Далее создадим сценарий PHP
PHP
  1. <?php
  2. for($i=1; $i<=10; $i++) {
  3. include "$i.txt";
  4. }
  5. ?>


А вот если бы мы поставили require, то получили бы на выходе критическую ошибку.

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

Конструкции однократного включения require_once и include_once



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

Небольшое примечание: под разными OS эти конструкции могут быть регистрозависимыми или нет. То есть, иногда конструкция может посчитать, что /file.php и /File.php - это два разных файла, и наоборот.
Понравилась статья?
Метки для данной статьи
Поделиться:   
Комментарии
#1 | Kelaxobia 05 мая 2019 10:10:59
No Avatar
Гость
Nolvadex Par Zeneca Buy Amoxicillin Online Usa Propecia Ancianos online pharmacy Zithromax Cardiac Warning Venta De Cialis Online
#2 | Ellbigh 02 августа 2019 14:49:39
No Avatar
Гость
Propecia Estructura Levitra Biverkningar Tarif Kamagra viagra professional Accessrx Prescription Drugs
#3 | Ellbigh 08 августа 2019 10:23:29
No Avatar
Гость
Baclofene Gamma Gt Vendo Cialis Concepcion order cialis online buy cheap accutane online no prescription Levitra Vancouver Productos Para Una Ereccion Mas Larga
Добавить комментарий
Имя:

Проверочный код:
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
13257 33 promask
27. апреля 2019
folder Вопрос по переделке bb-кода
PHP, MySQL
3331 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
13800 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
7707 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
7055 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
52716 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
4027 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
8159 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
9199 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
3041 0 Pisatel
15. июня 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
5705 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
7728 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
41278 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
3720 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
13635 13 Pisatel
03. апреля 2015