PHP7期望

摘要:PHP7期望,期望是向后兼容的增强到旧assert()函数。期望允许在生产代码零成本的断言,并提供在断言失败时抛出自定义异常的能力。assert()不是一种语言构建体,其中第一个参数是一个表达式的比较字符串或布尔用于测试。配置指令assert()指令默认值可能的值zend.assertions11-生成并执行代码(开发模式)0-生成代码,但它在运行时-1-不...

作者:LoveCode标签:PHP7期望,断言,是一个,抛出,对象,字符串,代码,指令,异常

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

配置指令assert()

指令 默认值  可能的值
zend.assertions 1
  • 1 - 生成并执行代码(开发模式)

  • 0 - 生成代码,但它在运行时

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

assert.exception 0
  • 1 - 当断言失败时抛出,要么抛出的异常,或者通过抛出一个新的 AssertionError 对象提供的对象,如果没有提供异常

  • 0 - 使用或与上述生成的Throwable,但只能根据该对象的警告,而不是(与PHP 5兼容的行为)把它抛出

参数

  • assertion - 断言。在PHP 5中,这必须是要计算一个字符串或要测试一个布尔值。 在PHP中7,这也可能是一个返回值的表达式,将执行和使用的结果,以指示断言是成功还是失败。

  • description - 一个可选的描述,如果断言失败,将包括失败消息。

  • exception-在PHP7,第二个参数可以是一个 Throwable 对象,而不是一个描述字符串,在这种情况下,这是如果断言失败和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...


CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)