PHP的AssertionError

介绍

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块

AssertionError示例

在此示例中,我们断言条件为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.