本文要点
- PHP 7为一次性对象添加了匿名类的功能,这样的例子可能是值对象以及实现了一个接口用来进行依赖注入的对象。
- 按照设计,匿名类是一次性使用的,不需要完整的类定义。
- 匿名类就像完整的类那样,可以扩展其他类、实现接口、定义构造器等等。
- PHP 7引入了IntlChar类来访问Unicode字符的信息。
- PHP 7废弃了一些特性,比如PHP 4风格的构造器。
在这个文章系列中,我们将会探索PHP 7的新特性。在第一篇文章中,我们准备好了环境并介绍了PHP 7,随后讨论了其与面向对象编程相关的新特性。在本文中,我们会讨论PHP在类和接口方面的改进。
匿名类
有时候,短期使用、用后即可废弃的对象可以取代完整的类实例。
PHP 7.0添加了对匿名类的支持,它们非常易于实例化,即便只使用一次。匿名类和完整类很相似,它们能够扩展其他的类、实现接口、定义构造器等。
作为样例,我们会创建一个匿名类来为服务器日志处理日志消息。创建一个_anonymous.php_脚本并定义包含setMsg(string $msg)
函数的LogMsg
接口,该接口允许我们设置日志消息。另外,创建一个带有getter/setter方法getLogMsg(): LogMsg
和setLogMsg(LogMsg $logMsg)
的ServerLog类,这个类用来设置服务器日志。
原文链接:【https://www.infoq.cn/article/H5av8rIy5WDy4dUagZWx】。未经作者许可,禁止转载。