РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
950 of 1392 menu

Функция 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!"

Смотрите также

  • функция throw_if,
    которая генерирует исключение при истинности условия
  • функция report,
    которая отправляет исключение в лог без его генерации
  • функция rescue,
    которая перехватывает исключения и возвращает значение по умолчанию
  • функция logger,
    которая записывает сообщение в лог
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить