Офис НП AMWAY в Ярославле
Купить продукцию Амвей в Ярославле, офис 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 2803  Прочтений 2803 Прочтений  8 Комментариев 8 Комментариев
 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
#4 | StepSwano 09 марта 2020 13:57:38
No Avatar
Гость
Levitra Acquisto Sicuro Cialis Finasteride With Free Shipping Visa <a href=http://apcialisle.com/#>Buy Cialis</a> Cipro Discount Card
#5 | Carlosvar 07 апреля 2020 00:06:54
No Avatar
Гость
live free sex cam bestonlinesexcams1.com live sex cam free.
#6 | Carlosvar 07 апреля 2020 05:40:37
No Avatar
Гость
mfc cam site adultcamsites1.com shemale cam sites.
#7 | Carlosvar 07 апреля 2020 11:34:01
No Avatar
Гость
porn cam sites adult web cam site nude webcam sites.
#8 | RobertTon 07 апреля 2020 13:27:24
No Avatar
Гость
sex webcam sites adultcamsites1 free adult web cam sites.
Добавить комментарий
Имя:

Проверочный код:
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
16682 33 promask
27. апреля 2019
folder Вопрос по переделке bb-кода
PHP, MySQL
4195 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
17832 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
8664 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
8870 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
59827 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
5742 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
9423 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
11164 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
3792 0 Pisatel
15. июня 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
7245 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
9185 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
48729 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
4379 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
15314 13 Pisatel
03. апреля 2015