补充*其他特性和变更
目录:
Unicode codepoint 转译语法
Closure::call()
IntlChar
预期
生成器可以返回表达式
Generator delegation
preg_replace_callback_array()
CSPRNG Functions
可以使用list()函数来展开实现了ArrayAccess接口的对象
允许在克隆表达式上访问对象成员
可以使用关键词作为方法名(链式操作)
Unicode codepoint 转译语法
这接受一个以16进制形式的 Unicode codepoint,并打印出一个双引号或heredoc包围的 UTF-8 编码格式的字符串。 可以接受任何有效的 codepoint,并且开头的 0 是可以省略的。
以上例程会输出:
Closure::call()
Closure::call()现在有着更好的性能,简短干练的暂时绑定一个方法到对象上闭包并调用它。
以上例程会输出:
IntlChar
以上例程会输出:
预期
以上例程会输出:
生成器可以返回表达式
此特性基于 PHP 5.5 版本中引入的生成器特性构建的。 它允许在生成器函数中通过使用return语法来返回一个表达式 (但是不允许返回引用值), 可以通过调用Generator::getReturn()方法来获取生成器的返回值, 但是这个方法只能在生成器完成产生工作以后调用一次。
以上例程会输出:
在生成器中能够返回最终的值是一个非常便利的特性, 因为它使得调用生成器的客户端代码可以直接得到生成器(或者其他协同计算)的返回值, 相对于之前版本中客户端代码必须先检查生成器是否产生了最终的值然后再进行响应处理 来得方便多了。
Generator delegation
以上例程会输出:
preg_replace_callback_array()
现在,可以使用一个关联数组来对每个正则表达式注册回调函数, 正则表达式本身作为关联数组的键, 而对应的回调函数就是关联数组的值。
CSPRNG Functions
可以使用 list() 函数来展开实现了ArrayAccess接口的对象
允许在克隆表达式上访问对象成员
可以使用关键词作为方法名
放宽保留字限制,场景为链式操作时.
全局保留的单词作为属性、常量和方法名称在类、接口和特性中被允许。当引入新的关键字并避免对api的命名限制时,这会减少BC的表面。
这在创建具有连贯接口的内部DSLs时特别有用:
唯一的限制是类关键字仍然不能用作常量名称,否则它将与类名解析语法(ClassName:class)相冲突。
Last updated
Was this helpful?