Учебники

PHP 7 — ожидания

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

Директивы конфигурации для assert ()

директива Значение по умолчанию Возможные значения
zend.assertions 1

1 — сгенерировать и выполнить код (режим разработки)

0 — генерировать код, но прыгать вокруг него во время выполнения

-1 — не генерировать код (режим производства)

assert.exception 0

1 — выбросить, когда утверждение не выполнено, либо путем выброса объекта, предоставленного в качестве исключения, либо путем выброса нового объекта AssertionError, если исключение не было предоставлено.

0 — использовать или генерировать Throwable, как описано выше, но генерирует только предупреждение, основанное на этом объекте, а не выбрасывая его (совместимо с поведением PHP 5)

1 — сгенерировать и выполнить код (режим разработки)

0 — генерировать код, но прыгать вокруг него во время выполнения

-1 — не генерировать код (режим производства)

1 — выбросить, когда утверждение не выполнено, либо путем выброса объекта, предоставленного в качестве исключения, либо путем выброса нового объекта AssertionError, если исключение не было предоставлено.

0 — использовать или генерировать Throwable, как описано выше, но генерирует только предупреждение, основанное на этом объекте, а не выбрасывая его (совместимо с поведением PHP 5)

параметры

  • утверждение — утверждение. В PHP 5 это должна быть либо строка для оценки, либо логическое значение для проверки. В PHP 7 это также может быть любое выражение, которое возвращает значение, которое будет выполнено, и результат используется, чтобы указать, было ли подтверждение успешным или неудачным.

  • description — необязательное описание, которое будет включено в сообщение об ошибке, если утверждение не выполнено.

  • исключение — в PHP 7 вторым параметром может быть объект Throwable вместо описательной строки, и в этом случае это объект, который будет брошен, если утверждение не выполнено и директива конфигурации assert.exception включена.

утверждение — утверждение. В PHP 5 это должна быть либо строка для оценки, либо логическое значение для проверки. В PHP 7 это также может быть любое выражение, которое возвращает значение, которое будет выполнено, и результат используется, чтобы указать, было ли подтверждение успешным или неудачным.

description — необязательное описание, которое будет включено в сообщение об ошибке, если утверждение не выполнено.

исключение — в PHP 7 вторым параметром может быть объект Throwable вместо описательной строки, и в этом случае это объект, который будет брошен, если утверждение не выполнено и директива конфигурации assert.exception включена.

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

ЛОЖЬ, если утверждение ложно, ИСТИНА в противном случае.

пример

<?php
   ini_set('assert.exception', 1);

   class CustomError extends AssertionError {}

   assert(false, new CustomError('Custom Error Message!'));
?>

Это производит следующий вывод браузера —