Функции require и include в PHP | PC vlog

Функции require и include в PHP

Функции require и include в PHP

Привет! Сегодня у нас на очереди такие замечательные функции как include и require.

Давайте начнем вот с чего то, что мы с вами делали до этого момента, у нас весь код представлял собой один файл. Запустили файл с кодом, он отработал и все хорошо. Естественно, нормальное большое приложение так не работает. Оно состоит из множества файлов, над этими файлами могут работать разные люди и в итоге все эти файлы собираются воедино в одно приложение. Суть в чем? Мы делим наш код на отдельные файлы, а на сервере он склеивается в одно целое. Сложно? Нет! И дальше вы увидите на сколько это все просто и как нам могут помочь функции require и include.


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

Предположим, у нас есть файл, пусть он будет называться hello.php и в нем будет такая запись:

Всем привет, это pcvlog.ru - Сайт о всем, что связано с
компьютером, интернетом и заработке в интернете.

У нас есть и другой файл, который называется, например, index.php. В нем написано

<? include hello.php; ?>

это значит, что на это место должна подставится надпись, которая находится в файле hello.php, то есть теперь будет так:

Функции require и include в PHP

А вот теперь можно ответить на вопрос, в чем разница между функциями include, require, include_once, require_once?

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

Вот тут нужно тонко понимать разницу. Если, например, у меня подключается движок сайта и он по каким-либо своим причинам не подгрузился, то смысл продолжать дальше вывод кода нет, поэтому я буду использовать функцию require. А вот если меня приятель попросил повесить у меня на сайте баннер, но при этом он сам чего-то там накосячил и баннер у меня перестал отображаться, то здесь уже использование функции require недопустимо. Почему? Потому что мне абсолютно не нужно, чтобы из-за его баннера у меня не работал сайт, поэтому в данном случае я буду использовать функцию include.


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

Однако, такое большое количество подключений может нам навредить. Как? Очень просто. Дело в том, что когда мы работаем с чужими библиотеками и подключаем их к своему сайту, мы в основном редко смотрим как называются эти самые файлы библиотек. И в большинстве случает в разных библиотеках названия файлов могут совпадать. Что я имею ввиду? Допустим, я, гуляя по интернету, нашел классную библиотеку функций и подключил ее к своему сайту. Иду гулять дальше по интернету и вижу еще одну хорошую библиотеку функций. Я беру этот файл и вижу, что он состоит из множества других подключенных к нему файлов с функциями. Их много и поэтому я не стал просматривать их все, просто посмотрел, что там есть то, что мне интересно, порадовался и подключил весь этот файлик с включенными в него другими файлами к своему сайту. И вот тут кроется та самая опасность большого количества подключений.

Как вы думаете, что будет, если к основному файлу сайта будут подключены одинаковые файлы библиотек? Что в этом случае сделает PHP?

Правильно, выдаст ошибку!

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

Конечно же в этом случае PHP проверяет только название файлов, но не его содержимое.

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


Вам будет это интересно:

Вы можете оставить комментарий, или Трекбэк с вашего сайта.

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