自PHP 7发布以来,我一直在重读SOLID原则。特别是Liskov substitution principle的概念,简而言之,规定类的任何扩展应该能够在其父类可以使用的任何地方使用。
这个原则的一部分是编码到一个接口,所以你的方法已经定义了合同到adhear。但是,在PHP 5及更低版本中,返回类型不存在。因此,尽管您必须将相同的参数类型传递给使用接口的方法,但您可以返回任何您喜欢的旧类型。对于大型项目,这使得遵循这一原则比其他语言更难。
我还没有安装PHP 7来测试它,我也没有在PHP手册或任何博客网站上看到任何文档,这些文档都在强调新功能。
PHP 7中的接口是否可以返回类型?
答案 0 :(得分:0)
是的,他们是。
PHP 7增加了对返回类型声明的支持。与论点相似 类型声明,返回类型声明指定的类型 将从函数返回的值。相同的类型 可用于参数的返回类型声明 类型声明。
答案 1 :(得分:0)
似乎从这个问题出现了一些混乱?无论如何,发布的link @Jarrid包含了我错过的信息,似乎完全回答了我的好奇心。
声明返回类型有几个激励因素和用例:
- 防止子类型破坏超类型的预期返回类型,尤其是在接口
中