具有返回类型和SOLID的接口

时间:2016-02-18 21:04:40

标签: php oop solid-principles php-7

自PHP 7发布以来,我一直在重读SOLID原则。特别是Liskov substitution principle的概念,简而言之,规定类的任何扩展应该能够在其父类可以使用的任何地方使用。

这个原则的一部分是编码到一个接口,所以你的方法已经定义了合同到adhear。但是,在PHP 5及更低版本中,返回类型不存在。因此,尽管您必须将相同的参数类型传递给使用接口的方法,但您可以返回任何您喜欢的旧类型。对于大型项目,这使得遵循这一原则比其他语言更难。

我还没有安装PHP 7来测试它,我也没有在PHP手册或任何博客网站上看到任何文档,这些文档都在强调新功能。

PHP 7中的接口是否可以返回类型?

2 个答案:

答案 0 :(得分:0)

是的,他们是。

  

PHP 7增加了对返回类型声明的支持。与论点相似   类型声明,返回类型声明指定的类型   将从函数返回的值。相同的类型   可用于参数的返回类型声明   类型声明。

PHP Documentation

答案 1 :(得分:0)

似乎从这个问题出现了一些混乱?无论如何,发布的link @Jarrid包含了我错过的信息,似乎完全回答了我的好奇心。

  

声明返回类型有几个激励因素和用例:

     
      
  • 防止子类型破坏超类型的预期返回类型,尤其是在接口
  • 中