【问题标题】:Type hinting confusion类型提示混淆
【发布时间】:2018-07-17 16:14:05
【问题描述】:

我最近了解了 php 中的新类型提示功能。

第一:

public function setSomething(Foo $bar):void

还有:

public function getSomething():Foo

今天我遇到了这个:

public /*int*/ doSomething()

这种新类型的提示是什么?我似乎无法弄清楚这是什么?

【问题讨论】:

  • 只是评论,没什么重要的
  • 可以在变量旁边声明类型,如第一个示例中所示,或在方法上方的注释块中。
  • 仅适用于 PHP 7

标签: php php-7 type-hinting


【解决方案1】:

让我们一步一步来:

  1. public function setSomething(Foo $bar):void

这里的Foo 是提示$bar 必须是Foo 类的实例。 void 告诉函数必须不返回任何内容

  1. public function getSomething():Foo

这里Foo 暗示函数必须返回Foo 类的实例

  1. public /*int*/ doSomething()

在这种情况下,实际上没有使用任何类型提示。 /*int*/ 只是一个评论。我猜当 php 中的类型提示不可用时有人离开了。

您可以在文档中阅读更多内容: http://php.net/manual/en/migration70.new-features.php

【讨论】:

    【解决方案2】:

    认为其他答案涵盖了最后一个版本纯粹是评论的主要思想,但有时 cmets 比 cmets 多一点......

    /**
     * @param string $key
     * @return int
     */
    public function get ( string $key ) {
    

    这是一个非常精简的文档块,用于从代码生成文档,但也适用于各种 IDE,以在您引用代码时帮助输入提示。

    在此注释中,返回类型指定为 int- 但代码对此没有添加任何限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      相关资源
      最近更新 更多