Устанавливает или получает флаги проверки утверждения

# assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — Устанавливает или получает флаги проверки утверждения

Внимание

Начиная с PHP 8.3.0 функция УСТАРЕЛА. Полагаться на функцию настоятельно не рекомендуют.

### Описание

function assert_options(int `$option`, mixed `$value` = ?): mixed

Функция устанавливает опции, которые управляют проверкой утверждений функцией assert(), или запрашивает текущие значения опций.

> Замечание: Разработчики не рекомендуют пользоваться функцией assert_options() и взамен предлагают устанавливать директиву файла php.ini zend.assertions функцией ini_set() и получать директиву assert.exception функцией ini_get().

### Список параметров

`option`

  Настройки механизма проверки утверждений
  Настройка | INI-параметр | Значение по умолчанию | Описание
  --- | --- | --- | ---
  ASSERT_ACTIVE | assert.active | 1 | Включает механизм проверки утверждений
  ASSERT_EXCEPTION | assert.exception | 1 | Выбрасывает исключение AssertionError для каждого неудачного утверждения
  ASSERT_WARNING | assert.warning | 1 | Выводит PHP-предупреждение для каждой неудачной проверки
  ASSERT_BAIL | assert.bail | 0 | Завершает выполнение, если проверка не удалась
  ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Отключает директиву error_reporting во время проверки утверждения. С PHP 8.0.0 опцию удалили
  ASSERT_CALLBACK | assert.callback | (`null`) | Callback-функция, которая вызывается для утверждений, которые не прошли проверку

`value`

  Необязательное новое значение опции.

  Требование к сигнатуре callback-функции, которую установили опцией `ASSERT_CALLBACK` или через директиву assert.callback:

  function assert_callback(
  string `$file`,
  int `$line`,
  ?string `$assertion`,
  string `$description` = ?
  ): void
  `file`
    Файл, в котором вызвали функцию assert().
  `line`
    Строка, в которой вызвали функцию assert().
  `assertion`
    До PHP 8.0.0, утверждение, которое передавали в функцию assert(), но только если утверждение задавали как строку. При передаче утверждения в виде логического условия параметр будет пустой строкой. Начиная с PHP 8.0.0 значение параметра всегда равно `null`.
  `description`
    Описание, которое передали в функцию assert().
  Передача пустой строки в параметр `value` сбрасывает callback-функцию проверки неудачных утверждений.

### Возвращаемые значения

Функция возвращает исходное значение опции.

### Ошибки

Функция выбрасывает исключение ValueError, если в параметр `option` передали недопустимую опцию.

### Список изменений

Версия | Описание
--- | ---
8.3.0 | Функция assert_options() устарела.
8.0.0 | Теперь функция выбрасывает исключение ValueError, если в параметр `option` передали недопустимую опцию; раньше возвращалось значение `false`.

### Примеры

Пример #1 Пример установки опций проверки утверждений функцией assert_options()

    <?php

    // Функция для обработки утверждений,
    // которые не прошли проверку
    function function assert_failure($file, $line, $assertion, $message)
    {
        echo "Проверка утверждения $assertion в файле $file на строке $line не прошла проверку: $message";
    }

    // Тестовая функция
    function test_assert($parameter)
    {
        assert(is_bool($parameter));
    }

    // Настройки проверки
    assert_options(ASSERT_ACTIVE,   true);
    assert_options(ASSERT_BAIL,     true);
    assert_options(ASSERT_WARNING,  false);
    assert_options(ASSERT_CALLBACK, 'assert_failure');

    // Заведомо ошибочное утверждение
    test_assert(1);

    // Этот код не выполнится, пока значение опции ASSERT_BAIL
    // равно true
    echo 'Никогда не выведется';

    ?>

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

- assert() - Проверяет утверждение

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open