Когда использовать if, switch и match в PHP

Источник: «When to use `if`, `switch`, and `match` in PHP»
Узнайте, когда следует использовать if, switch и match в PHP для оптимальной эффективности и читабельности кода. Изучите синтаксис, примеры использования и практические примеры.

Одним из фундаментальных аспектов любого языка программирования является его способность управлять ходом выполнения программы в зависимости от различных условий. PHP предлагает несколько способов достижения этого, среди них наиболее заметными являются операторы if, switch и match. В статье рассмотрим каждый из этих условных операторов, изучим синтаксис, особенности использования и сценарии, в которых следует применять каждый из них.

Условные операторы позволяют разработчикам выполнять различные блоки кода на основе определённых условий. Эта возможность важна для принятия решений в программе, обработки различных входящих значений и управления различными состояниями приложения.

Выражение if

Выражение if основное и широко используемое условное выражение в PHP. Он оценивает условие и выполняет блок кода, если условие истинно.

Синтаксис выражения if

if (condition) {
// Код, выполняющийся, если условие истинно
}

Пример выражения if

$age = 20;

if ($age >= 18) {
echo "Вы совершеннолетний.";
} else {
echo "Вы несовершеннолетний.";
}

Когда использовать if

Выражение switch

Выражение switch — альтернатива выражению if, часто используемая при работе с несколькими возможными значениями одной переменной. В нём переменная сравнивается с различными значениями и выполняется соответствующий блок кода.

Синтаксис выражения switch

switch (variable) {
case value1:
// Код, выполняемый, если variable == value1
break;
case value2:
// Код, выполняемый, если variable == value1
break;
default:
// Код, выполняемый, если variable не соответствует какому-либо case
}

Пример выражения switch

$day = "Вторник";

switch ($day) {
case "Понедельник":
echo "Начало рабочей недели!";
break;
case "Вторник":
echo "Второй день рабочей недели!";
break;
case "Среда":
echo "Третий день рабочей недели!";
break;
case "Четверг":
echo "Четвёртый день рабочей недели!";
break;
case "Пятница":
echo "Последний рабочий день недели!";
break;
default:
echo "Выходные!";
}

Когда использовать switch

Выражение match

Выражение match, появившееся в PHP 8.0, представляет более мощную и гибкую версию выражения switch. Оно возвращает значение, основанное на совпадающем условии.

Синтаксис выражения match

$result = match (variable) {
value1 => result1,
value2 => result2,
default => defaultResult,
};

Пример выражения match

$status = 404;

$message = match ($status) {
200 => "OK",
404 => "Not Found",
500 => "Internal Server Error",
default => "Unknown status code",
};

echo $message; // Выводит: Not Found

Когда использовать match

Практические сценарии

Чтобы понять, когда следует использовать if, switch и match, рассмотрим несколько практических сценариев:

Сценарий 1: Аутентификация пользователя

При валидации учётных данных пользователя уместно использовать оператор if, поскольку приходится иметь дело с логическими проверками.

$username = "admin";
$password = "password123";

if ($username === "admin" && $password === "password123") {
echo "Welcome, admin!";
} else {
echo "Invalid credentials.";
}

Сценарий 2: Обработка формы

При обработке формы, в которой одно поле может иметь несколько известных значений, идеально подходит оператор switch.

$action = $_POST['action'];

switch ($action) {
case 'save':
saveData();
break;
case 'delete':
deleteData();
break;
case 'update':
updateData();
break;
default:
echo "Invalid action.";
}

Сценарий 3: Коды состояния HTTP

При сопоставлении кодов состояния HTTP с сообщениями выражение match является наиболее подходящим благодаря лаконичному синтаксису и возможностям возвращаемого значения.

$statusCode = getStatusCodeFromServer();

$message = match ($statusCode) {
200 => "OK",
301 => "Moved Permanently",
404 => "Not Found",
500 => "Internal Server Error",
default => "Unknown status code",
};

echo $message;

Выбор правильного инструмента

Выбор между if, switch и match зависит от конкретных требований кода:

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

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

Дополнительные материалы

Предыдущая Статья

Понимание операции сведения в Коллекциях Laravel

Следующая Статья

Новые функции массива в PHP 8.4