【问题标题】:Interfaces with return types and SOLID具有返回类型和 SOLID 的接口
【发布时间】:2016-05-31 06:19:11
【问题描述】:

自从 PHP 7 发布以来,我一直在复习 SOLID 原则。特别是Liskov substitution principle 的想法,简而言之,它指出类的任何扩展都应该能够在任何可以使用其父类的地方使用。

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

我还没有安装 PHP 7 来测试它,我实际上也没有在 PHP 手册或任何博客网站上看到任何宣传新功能的文档。

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

【问题讨论】:

标签: php oop solid-principles php-7


【解决方案1】:

这个问题似乎有点混乱?不管怎样,link@Jarrid 发布的帖子包含了我错过的信息,似乎完全回答了我的好奇心。

声明返回类型有几个动机和用例:

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

【讨论】:

    【解决方案2】:

    是的,他们是。

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

    PHP Documentation

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多