Kodokon kodokon.com

Условия и циклы

Заставь свои скрипты реагировать с помощью if и match, затем повторяй действия через for, foreach и while.

9 мин · 3 вопросов

Открыть этот урок в Kodokon

Условие позволяет скрипту выбрать путь: «если это правда, сделай вот это, иначе сделай что-то другое». Ключевое слово if проверяет выражение, которое даёт true или false, с помощью операторов сравнения: > (больше), < (меньше), >=, <=, === (равно, то же значение И тот же тип) и !== (не равно). elseif добавляет ещё одну проверку, если предыдущая не прошла, а else срабатывает, когда ни одна проверка не удалась. Проверки читаются сверху вниз: побеждает первая истинная.

PHP
<?php

$temperature = 12;

if ($temperature > 25) {
    echo "It's hot.";
} elseif ($temperature > 15) {
    echo "It's mild.";
} else {
    echo "Grab a jacket!";
}
Здесь выполнится только блок else.

Когда ты сравниваешь одну и ту же переменную с несколькими конкретными значениями, выражение match выглядит изящнее. Оно сравнивает переменную с каждым случаем (строгое сравнение, значение и тип) и сразу возвращает значение, которое можно сохранить в переменную. Случай default служит подстраховкой, когда ни одно значение не подошло.

PHP
<?php

$day = "saturday";

$message = match ($day) {
    "saturday", "sunday" => "It's the weekend!",
    "monday" => "Hang in there, back to work.",
    default => "Have a good weekday.",
};

echo $message;
match возвращает значение, здесь оно сохранено в $message.

Цикл повторяет блок инструкций несколько раз, без копирования кода. Цикл for идеален, когда число проходов известно заранее. Он читается в трёх частях, разделённых точкой с запятой: старт ($i = 1), условие продолжения ($i <= 5, цикл идёт, пока это верно) и шаг ($i++, который прибавляет 1 к $i на каждом проходе).

PHP
<?php

for ($i = 1; $i <= 5; $i++) {
    echo "Round number {$i}<br>";
}
Пять проходов, от 1 до 5 включительно.

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

PHP
<?php

$fruits = ["apple", "pear", "kiwi"];

foreach ($fruits as $fruit) {
    echo "Fruit: {$fruit}<br>";
}

$countdown = 3;

while ($countdown > 0) {
    echo "{$countdown}...<br>";
    $countdown--;
}

echo "Go!";
foreach обходит список, while ведёт обратный отсчёт.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Когда выполняется блок else?
    • Всегда, сразу после блока if
    • Только если ни одно предыдущее условие не истинно
    • Только если условие if истинно
  2. Что отличает match от if?
    • Он сразу возвращает значение
    • Он умеет сравнивать только числа
    • Он выполняет все случаи один за другим
  3. Что произойдёт, если условие while навсегда останется истинным?
    • Цикл сам остановится после 100 проходов
    • PHP проигнорирует цикл и пойдёт дальше
    • Цикл будет крутиться бесконечно и подвесит скрипт