require и include в PHP. Операторы break и continue

Управляющие конструкции в PHP
Операторы require и include
break и continue



include

require

require_once и include_once

Операторы break и continue



Управляющие конструкции: php.net


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



include




Создадим в папке с уроком новый файл inc.php и запишем в него заголовок:


-- файл inc.php --

<h1>Hello, World!</h1>



Подключаем его в файле index.php:


-- файл index.php --

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>require и include в PHP</title>
</head>
<body>
<p>Привет мир!</p>

<!-- подключаем файл inc.php с помощью include -->
<?php include 'inc.php' ?>

<!-- подключаем файл inc.php второй раз с помощью include -->
<?php include 'inc.php' ?> <!-- это сработает -->

<p>Привет мир!</p>
</body>
</html>

После обновления страницы получим:
Привет мир!
Hello, World! // содержимое подключаемого файла
Hello, World! // содержимое повторного подключения файла
Привет мир!



- то есть, вместо строки <?php include 'inc.php' ?> подставляется содержимое файла inc.php

Если мы попытаемся подключить этот файл второй раз, то это сработает.


В файле inc.php запишем массив $names:


-- файл inc.php --

<h1>Hello, World!</h1>

<?php
// запишем массив $names
$names = [ 'Ivanov' , 'Petrov' ];




Поскольку файл inc.php мы подключаем к индексному файлу, то в индексном файле нам доступен массив $names, в этом легко убедиться, распечатав этот массив:


-- файл index.php --

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>require и include в PHP</title>
</head>
<body>
<p>Привет мир!</p>

<!-- подключаем файл inc.php с помощью include -->
<?php include 'inc.php' ?>

<!-- подключаем файл inc.php второй раз с помощью include -->
<?php include 'inc.php' ?> <!-- это сработает -->

// распечатываем массив $names
<?php print_r ( $names ) ?>

<p>Привет мир!</p>

</body>
</html>

После обновления страницы получим:
Привет мир!
Hello, World! // содержимое подключаемого файла
Hello, World! // содержимое повторного подключения файла
Array ( [0] => Ivanov [1] => Petrov ) // распечатанный массив $names
Привет мир!




require




Отличие require от include, заключается в том, что при возникновении ошибки, например, файл inc.php - находится в другой директории и нам не доступен:

--- при подключении с помощью include - выполнится весь наш код в данном файле, а файл inc.php не подключится и будет при этом выведена ошибка подключения файла. Но вместе с тем, код нашей страницы отработал. И полученная ошибка не фатальная, не критичная - это просто предупреждение. Это значит, что код продолжит работать, но есть какая-то незначительная ошибка, которая не влияет на его работоспособность.

--- при подключении с помощью require второй параграф <p>Привет мир!<p> не выведится. Мы получим уже фатальную ошибку, после которой php преравает выполнение скрипта.

include - вызывает ошибку уровня Warning,

require - вызывает ошибку уровня Fatal error.

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

Но все-же лучше всегда использовать require.



require_once и include_once




С помощью require_once и include_once - мы гарантируем, что файл будет поключен один раз (once - единожды). Второе подключение файла будет игнорироваться.


-- файл index.php --

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>require_once</title>
</head>
<body>
<p>Привет мир!</p>

<!-- подключаем файл inc.php с помощью require_once -->
<?php require_once 'inc.php' ?>

<!-- подключаем файл inc.php второй раз с помощью require_once -->
<?php require_once 'inc.php' ?> <!-- будет игнорированно -->

<p>Привет мир!</p>
</body>
</html>

После обновления страницы получим:
Привет мир!
Hello, World! // содержимое подключаемого файла
Привет мир!




Разница между require_once и include_once та же, что и между require и include - в уровне ошибки.



Операторы break и continue




С помощью оператора break (php.net) --- можно прервать выполнение циклов: for, foreach, while, do-while или switch.


Пример: найти число 5 и остановить дальнейшее выполнение цикла:


<?php
for ($i = 0; $i <= 30; $i++){
echo $i . '<br>' ;
if ($i == 5){
echo '<h2>Найдено!!!</h2>';
break;
}
}
?>
выведет:
1
2
3
4
5
Найдено!!!



- цикл отработает ровно столько, сколько потребуется для поиска нужного элемента, элемент найден и цикл дальше не работает. Мы остановили ненужное выполнение цикла.



continue (php.net) - данный оператор используется для того, чтобы сделать пропуск. То есть не выполнять, допустим, какие-то дествия для определенных действий в цикле.


Пример:

вывести все цифры от 0 до 30, кроме 10 и 20

( "||" - то же самое, что и "or" --- " или" )


<?php
for ($i = 0; $i <= 30; $i++){
if ($i == 10 || $i == 20) continue;
echo $i . '<br>';
}
?>
- выведет все числа от 0 до 30, кроме чисел 10 и 20.



- если выполнится условие ( $i == 10 || $i == 20 ), то дальнейшие действия в теле цикла будут пропущены и мы передем к следующей итерации.


Пример:

Вывести все цифры от 0 до 30 и пропустить диапазон чисел от 10 до 20

( "&&" - то же самое, что и "and" --- " и" )


<?php
for ($i = 0; $i <= 30; $i++){
if ($i >= 10 && $i <= 20) continue;
echo $i . '<br>';
}
?>
- выведет все числа от 0 до 30, кроме диапазона чисел от 10 до 20.


Структура файлов урока


php12.png






Наверх Наверх