AssertionError 类是Error类的子类。当assert()返回FALSE时抛出此类型的错误
assert()检查给定的断言是true还是false,如果为false,则抛出AssertionError。该assert()
函数定义如下-
for PHP 5 and PHP 7 assert ( mixed $assertion [, string $description ] ) : bool PHP 7 only assert ( mixed $assertion [, Throwable $exception ] ) : bool
序号 | 参数及说明 |
---|---|
1 | 断言 字符串或布尔表达式 |
2 | 说明 失败消息 |
3 | 异常(仅适用于PHP 7) 抛出对象 |
从PHP 7.0开始,assert()
现在是一种语言构造,而不是一个函数。断言参数现在可以是表达式,第二个参数可以是异常或描述。从PHP 7.2开始,字符串描述会发出 E_DEPRECATED消息。assert()
仅当在php.ini中启用assert.exception = on时,抛出的AssertionError才会发送到catch块。
在此示例中,我们断言条件为true,try块正常执行。如果为false,则会从catch块显示AssertionError消息。
<?php $a=10; $b=20; try { if (assert($a == $b, "assert($a == $b) failed.")) { echo("assert($a == $b) was successful."); } } catch (AssertionError $e) { echo $e->getMessage(); } ?>
输出结果
这将产生以下结果-
assert(10 == 20) failed.