Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Условия

Условия позволяют программе выбирать, какой код выполнить. Без них программа всегда делала бы одно и то же, независимо от данных.

if и else

Код в фигурных скобках после if выполняется, только если условие истинно. Блок else срабатывает в противном случае:

<?php
 
$age = 20;
 
if ($age >= 18) {
    echo 'Доступ разрешён';
} else {
    echo 'Доступ запрещён';
}

Блок else необязателен: если он не нужен, его просто не пишут.

Несколько вариантов

Когда вариантов больше двух, между if и else добавляют elseif. Условия проверяются сверху вниз, и выполняется первый подходящий блок:

<?php
 
$score = 75;
 
if ($score >= 90) {
    echo 'Отлично';
} elseif ($score >= 70) {
    echo 'Хорошо';
} else {
    echo 'Нужно подтянуть';
}

Порядок важен: если поставить проверку >= 70 первой, оценка 95 тоже получит «Хорошо».

Тернарный оператор

Короткая форма if-else для выбора одного из двух значений. Сначала условие, после ? — значение для истины, после : — для лжи:

<?php
 
$age = 15;
 
echo $age >= 18 ? 'взрослый' : 'ребёнок'; // ребёнок

Тернарный оператор хорош для простых случаев. Сложную логику лучше оставить обычному if — так её легче читать.

Значение по умолчанию

Оператор ?? возвращает левое значение, если оно существует и не равно null, а иначе — правое:

<?php
 
$input = null;
$name = $input ?? 'Гость';
 
echo $name; // Гость

Это самый удобный способ подставить значение по умолчанию.

match

Выражение match сравнивает значение с несколькими вариантами и возвращает результат подходящего:

<?php
 
$status = 404;
 
$text = match ($status) {
    200 => 'OK',
    404 => 'Не найдено',
    default => 'Неизвестный статус',
};
 
echo $text; // Не найдено

Сравнение в match строгое, как у ===. Если подходящего варианта нет и ветки default тоже нет, PHP выдаст ошибку.

Частая ошибка

Фигурные скобки после if можно не ставить, если внутри одна инструкция. Не делайте так: стоит дописать вторую строку, и она будет выполняться всегда, вне условия. Ставьте скобки всегда.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.