Функция throw_unless
Функция throw_unless принимает первым параметром условие,
вторым - исключение или сообщение об ошибке,
третьим - код ошибки. Если условие возвращает false,
функция генерирует исключение. В случае, когда условие истинно,
функция возвращает значение условия без генерации исключения.
Функция полезна для валидации данных и проверки предусловий.
Синтаксис
<?php
throw_unless($condition, $exception, $code);
?>
Пример
Давайте проверим, что переменная 'status' имеет значение
'active', и если нет - выбросим исключение:
<?php
$status = 'inactive';
throw_unless($status === 'active', 'Status must be active');
echo "Status is active";
?>
Результат выполнения кода:
"Uncaught Exception: Status must be active"
Пример
Используем функцию для проверки наличия элемента в массиве. Если элемент отсутствует, генерируем исключение:
<?php
$user = ['id' => 1, 'name' => 'John'];
$name = throw_unless(isset($user['name']), 'User name not found');
echo $name;
?>
Результат выполнения кода:
"John"
Пример
Давайте проверим возраст пользователя.
Если возраст меньше 18, выбрасываем исключение:
<?php
$age = 16;
throw_unless($age >= 18, 'Age must be at least 18', 403);
echo "Access granted";
?>
Результат выполнения кода:
"Uncaught Exception: Age must be at least 18"
Пример
Используем throw_unless для проверки,
что пользователь администратор:
<?php
$role = 'admin';
$isAdmin = throw_unless($role === 'admin', 'User is not an admin');
echo "Welcome, admin!";
?>
Результат выполнения кода:
"Welcome, admin!"