手册教程~

PHP 7 - expectations 期望

期望是对旧的assert()函数的向后兼容增强。期望允许在生产代码中使用零成本断言,并提供在断言失败时抛出自定义异常的能力。assert()现在是一种语言构造,其中第一个参数是表达式,而不是要测试的字符串或布尔值。

assert()的配置指令

DirectiveDefault valuePossible values
zend.assertions1

1−生成并执行代码(开发模式)

0−生成代码,但在运行时跳过它

-1−不生成代码(生产模式)

assert.exception0

1−throw,当断言失败时,通过抛出作为异常提供的对象或抛出一个新的断言错误对象,如果未提供异常。

0−如上所述使用或生成一个Throwable,但仅基于该对象生成警告,而不是抛出它(与php5行为兼容)

参数

  • 断言−断言。在php5中,它必须是要求值的字符串或要测试的布尔值。在php7中,这也可以是任何返回值的表达式,该值将被执行,结果用于指示断言是成功还是失败。

  • 描述−如果断言失败,将包含在故障消息中的可选说明。

  • 例外−在PHP7中,第二个参数可以是可抛出对象而不是描述性字符串,在这种情况下,如果断言失败并且断言.异常配置指令已启用。

返回值

错误的如果断言是假的,真的否则。

例子

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

   class CustomError extends AssertionError {}

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

它产生以下浏览器输出–

Fatal error: Uncaught CustomError: Custom Error Message! in...