PHP с нуля. Урок #5. Управляющие структуры

Премиум
Статус
Оффлайн
Регистрация
3 Дек 2017
Сообщения
222
Реакции[?]
201
Поинты[?]
0
Сегодня мы поговорим с вами об
Условных операторах: if, else, elseif;
Циклах: while, do ... while, for, foreach;
И других операторах: continue, break, switch, include, require;

Тема будет большая, Приступим:
Условные операторы If и Else нужны, если вам необходимо
выполнить некоторый код если какое-либо условие верно,
и, возможно, другой под, если это условие не верно.

Код помещенный в IF выполнится, только если условие данное в скобках верно
Код помещенный в ELSE (оператор else необязателен) выполнится в других случаях.

К каждому IF может быть либо только 1 ELSE, либо ELSE не быть.

Например,
Код:
if (5 > 3) {
    echo "5 больше трех";
}
else {
    echo "Странно, не может быть такого";
}
Этот код выведет "5 больше трех" и пропустит участок else, так как условие (5 > 3) верно.
*Обратите внимание, после else никаких круглых скобок не идет
Elseif - "промежуточный" условный оператор.
Он нужен для того, чтоб проверить другое условие, если выражение в IF оказалось ложным.

Также, без IF elseif использовать нельзя.

Например,
Код:
if (5 < 3) {
    echo "5 меньше 3???";
}
elseif (5 > 3) {
    echo "Правильно!";
}
else {
    echo "Это не баг, это фича!";
}
Этот код выведет "Правильно!":

Так как первое условие (в IF) оказалось ложным,
скрипт проверил второе условие (в ELSEIF), которое уже оказалось верным,
поэтому он исполнил этот код (echo "Правильно!");
Это самый простой цикл в PHP
Он будет повторять выполнение кода до тех пор, пока условие данное в круглых скобках не станет ложным.
Лучше показать, чем объяснять:
Код:
$i = 2;
while ($i-- > 0) {
    echo $i;
}
Пройдемся по шагам:
  • Проверяем условие ($i-- > 0), то есть (2-- > 0). Условие верно. Но мы использовали декремент, теперь $i = 1; Выводим $i. Выводится "1".
  • Еще раз проверяем условие ($i-- > 0), то есть (1-- > 0). Условие верно. Но мы снова использовали декремент, теперь $i = 0; Выводим $i. Выводится "0".
  • Третий раз проверяем условие ($i-- > 0), то есть (0 > 0). Условие ложно. Прерываем выполнение цикла.

Выведет "10", так как "1"+"0" = "10".
Это почти тоже самое, что цикл While, только сначала выполняется действие, а затем проверяется условие.
Код:
$i = 2;
do {
    echo $i;
} while ($i-- > 0)
Здесь мы получим другой вывод.
Скрипт сначала будет выполнять действие (echo $i;), а потом проверять условие.
Пройдемся по шагам:
  • Выполняем действие (выводим $i, то есть выводим "2").
    Проверяем условие ($i-- > 0). Условие верно, но теперь $i = 1.
  • Выполняем действие (выводим $i, то есть выводим "1").
    Проверяем условие ($i-- > 0). Условие верно, но теперь $i = 0.
  • Выполняем действие (выводим $i, то есть выводим "0").
    Проверяем условие ($i-- > 0). Условие ложно. Прерываем цикл.

Выведет "210", так как "2"+"1"+"0" = "210".
Этот цикл нужен тогда, когда вы знаете, сколько раз вам необходимо выполнить код. Это очень нужный цикл.

В круглые скобки передается 3 команды:
  • Действие при начале выполнения всего цикла
  • Условие, контролирующее цикл (цикл будет выполняться, пока условие верно)
  • Действие в конце каждой итерации (повтора) цикла
Например:
Код:
for ($i = 0; $i < 5; $i++) {
    echo $i;
}
По шагам:
  • Вначале определяется переменная ($i = 0)
  • Цикл проверяет условие. ($i < 5) - верно, значит выполняем код
    (выводим $i, то есть 0, то есть ничего не выводим)
  • $i инкрементируется.
  • Выполняет тоже самое 5 раз, т.к. на шестой уже $i не меньше, чем 5.

Выведет "0"+"1"+"2"+"3"+"4" = "01234".
С циклом Foreach все попроще. Он "пробегает" по всем элементам массива.
Например,
Код:
$hw = ["h", "e", "l", "l", "o", "!"]; // Создаем массив

/* Создаем переменную $word, в которой
поочереди будет содержаться значение
каждого элемента массива */

foreach ($hw as $word) {
    echo $word; // Выводим букву
}
Этот код поочереди выведет каждую букву массива, и в итоге получится "hello!"
Switch является хорошей альтернативой If-ElseIf-Else.
Код:
$var = "СР";
switch ($var) { // Создаем switch для переменной $var
    case "ПН": // Если $var == "ПН"
        echo "Понедельник"; // Выводим
        break; // Чуть позже объясню, зачем.
    case "ВТ":
        echo "Вторник";
        break;
    case "СР":
        echo "Среда";
        break;
    default: // В остальных случаях
        echo "Остальные";
}
В этом коде выведет "Среда", так как $var = "СР".

До break мы еще не дошли, но объясню заранее: break прекращает выполнение switch'а. Если не ставить break, то выполнятся весь код, даже в остальных case до первого break. Дальше поймете.
Break и Continue позволяют управлять циклами изнутри:
Если написать "break;" внутри кода цикла, то когда скрипт дойдет до этой строчки, цикл прервется.
Если написать "continue;" там же, то когда скрипт дойдет то этой строчки, то цикл начнет выполнять следующий повтор, не дожидаясь конца текущего.
Код:
$i = 0;
while (true) { //Цикл выполняется вечно
    if ($i == 0) {
        $i++;
        continue; // Не продолжает выполнять код дальше, начинает следующий повтор
    } else {
        echo $i;
        break;
    }
}
Этот код выведет "1", так как на первой итерации $i == 0,
поэтому $i++, и цикл продолжит выполнение,
потом $i станет больше 0, цикл выведет $i и прекратит выполнение.
Include и Require позволяют включать содержимое одного PHP файла в другой.
Код:
include 'second.php'
Этот код "включит" second.php в текущий файл,
то есть код из second.php "скопируется" в текущий файл.

Require работает примерно также, но при отсутствии файла
выдаст фатальную ошибку в отличии от Include.

Еле это написал, домашней работы не будет :\
Да ее и так никто не делает :\
_________________________________________________________________________
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.
 
Сверху Снизу