Ожидания являются обратно совместимым улучшением более старой функции 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!')); ?>
Это производит следующий вывод браузера —