开发学院

您的位置:首页>教程>正文

教程正文

PHP 7 Expectations

PHP 7 Expectations

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

assert()的配置指令

指令 默认值可选参数
zend.assertions1

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

0:生成代码,但在运行时绕过它

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

assert.exception0

1:当断言失败时引发,方法是引发作为异常提供的对象,或者在未提供异常的情况下引发新的assessionerror对象。      

0:使用或生成如上所述的可投掷对象,但仅基于该对象生成警告,而不是投掷该对象(与PHP 5行为兼容)

参数

  • assertion:在PHP 5中,它必须是要评估的字符串或要测试的布尔值。在PHP 7中,这也可以是返回值的任何表达式,该值将被执行,并且结果用于指示断言是成功还是失败。

  • description: 如果断言失败,将包括在失败消息中的可选描述。

  • exception:在PHP 7中,第二个参数可以是可掷回的对象,而不是描述性字符串,在这种情况下,如果断言失败并且启用assert . exception配置指令,则这是将掷回的对象。

返回值

  失败返回false,成功返回true

例子

<?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...