Php 简明教程

PHP – Expectations

预期是与旧的 assert() 函数向后兼容的增强功能。预期允许在生产代码中进行零成本的断言,并提供在断言失败时抛出自定义异常的能力。

assert() 现在是一个语言构造,其中第一个参数与要测试的字符串或布尔值相反,是一个表达式。

Configuration Directives for assert()

下表列出了 assert() 函数的配置指令:

Directive

Default value

Possible values

zend.assertions

1

1 - 生成并执行代码(开发模式) 0 - 生成代码但在运行时跳过它 -1 - 不生成代码(生产模式)

assert.exception

0

1 - 在断言失败时抛出,方法是抛出作为异常提供的对象,或者在未提供异常的情况下抛出新的 AssertionError 对象。 0 - 使用或生成一个如上所述的 Throwable,但仅根据该对象生成警告,而不是抛出它(与 PHP 5 行为兼容)

Parameters

  1. Assertion - 断言。在 PHP 5 中,这必须是一个要评估的字符串或要测试的布尔值。在 PHP 7 中,这也可以是返回一个值的任何表达式,它将被执行,其结果将用于指示断言是否成功或失败。

  2. Description - 一个可选的描述,如果断言失败,它将包含在失败消息中。

  3. Exception - 在 PHP 7 中,第二个参数可以是 Throwable 对象而不是描述性字符串,在这种情况下,如果断言失败并且启用 assert.exception 配置指令,它将是将被抛出的对象。

Return Values

如果断言为 false,则返回 FALSE,否则返回 TRUE。

Example

请看以下示例:

<?php
   ini_set('assert.exception', 1);
   class CustomError extends AssertionError {}
   assert(false, new CustomError('Custom Error Message!'));
?>

它将生成以下 output

PHP Fatal error:  Uncaught CustomError: Custom Error Message! In test.php:6