Webzone Публикации PHP PHP — Циклы

PHP — Циклы

09:29 , 17 Июль 2019
PHP — Циклы

Выполнение однообразных операций всегда напрягает нас в реальной жизни. Например, запечатать 50 конвертов с письмами (согласен, неудачный пример, но суть ясна). А вот в программировании есть такие хорошие конструкции, которые позволяют упросить выполнение повторяющихся операций. Одним из решений будут функции php, которые мы рассмотрели в одном из прошлых уроков. Но также существует и еще несколько вещей, которые позволят упростить нам жизнь — циклы.

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



Простой пример цикла While

Суть While проста. Он будет выполнять заданный набор команд снова и снова, пока выполняется прописанное условие. Так называемый цикл с предусловием, то есть сначала проверка, потом выполнение. Эта логическая проверка работает так же, как IF…else в php.

Примерный алгоритм выполнения выглядит следующим образом:
- Шаг 1. Проверяется заданное условие цикла. Если оно истинно, то выполняется Шаг 2, если ложно, то Шаг 4.
- Шаг 2. Выполнение тела цикла (заданных команд).
- Шаг 3. Процесс начинается снова (Шаг 1).
- Шаг 4. Если условное выражение ложно, то код внутри цикла не выполняется. Код, записанный после цикла выполняется как обычно.


$i = 1;

while ($i <= 10) {

echo $i;
$i++;

}


Присваиваем переменной $i значение 1, а затем формируем цикл с условием ($i <= 10). Таким образом команда echo $i выполнится 10 раз. Итератор (переменную - счетчик) нужно изменять самостоятельно, в отличие от цикла for, но о нем мы поговорим позже. Для этого мы выполняем команду $i++. Если этого не сделать, то цикл никогда не прервется, то есть код зациклится, чего не хотелось бы.



Цикл For

Еще один вид цикла с которым мы сегодня познакомимся, это цикл for. Он, как и цикл while нужен довольно часто. Например, при работе с массивами. Но синтаксис его немного отличается. Не пугайтесь, здесь все так же просто, достаточно лишь понять смысл.

Для начала разберем конструкцию на словах, чтобы было проще работать с кодом:
- определяем переменную-счетчик с некоторым начальным значением и также задаем конечное значение;
- проверяем, укладывается ли переменная в заданные рамки в текущий момент;
- если да, то выполняем тело цикла;
- увеличение переменной-счетчика в конце каждой итерации цикла происходит автоматически, в отличие от цикла while.
На самом деле все очень просто, задается начальное и конечное значение переменной, а затем описывается тело цикла в котором эту переменную можно использовать, после чего она сама увеличится. Давайте разберем уже на примере.




for ( $counter = 3; $counter <= 11; $counter +=3) {
      echo $counter. "<br>";
}


Результат:
3
6
9

Теперь давайте разберем, что же мы сделали при объявлении нашего цикла. Перво-наперво определили переменную $counter = 3 и сразу же присвоили ей начальное значение 3. После этого, через точку с запятой, задали условие, при удовлетворении которого, цикл выполняется: $counter <= 11, то есть если переменная меньше или равна 11, то цикл выполняется. Ну и, наконец, последний шаг это шаг цикла - увеличение счетчика. В нашем случае: $counter +=3 увеличение с каждым шагом (итерацией) на 3. Надеюсь все понятно. Экспериментируйте, а если что-то не получится, то спрашивайте в комментариях, поможем!



Цикл Foreach

Представьте, что у вас есть ассоциативный массив, который вы хотите перебрать. PHP предоставляет простой способ использовать каждый элемент массива по очереди с помощью Foreach конструкции.

На простом языке это будет звучать примерно так: «Для каждого элемента в указанном массиве выполнить этот код.»

В то время как цикл While будет продолжаться, пока выполняется некоторое условие, цикл foreach будет продолжаться, пока не пройдет через каждый элемент массива.


$employeeAges;
$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";
$employeeAges["Grace"] = "34";

foreach( $employeeAges as $key => $value){
	echo "Name: $key, Age: $value <br />";
}


Результат
Name: Lisa, Age: 28
Name: Jack, Age: 16
Name: Ryan, Age: 35
Name: Rachel, Age: 46
Name: Grace, Age: 34

Что же, результат хороший и понятный, а вот синтаксис конструкции foreach не очень легкий и понятный. Давайте разберемся в нем поподробнее.

Все это безумие примерно переводится в: «Для каждого элемента ассоциативного массива $employeeAges я хочу обратиться к $key и значению в нем, то есть к $value.

Оператор «=>» представляет связь между ключом и значением. В нашем примере мы назвали их как ключ — $key и значение — $value. Тем не менее, было бы легче думать о них, как об имени и возрасте. Ниже в нашем примере мы так и сделаем, и обратите внимание, что результат будет тот же, потому что мы только изменили имена переменных, которые относятся к ключам и значениям.



Вот и все, в принципе синтаксис не сложный, достаточно понять суть. Если будут вопросы — задавайте, отвечу, если смогу :)

Вопросы / Комментарии / Отзывы