输入暗示混淆

时间:2018-02-07 11:27:55

标签: php php-7 type-hinting

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

首先:

public function setSomething(Foo $bar):void

还有:

public function getSomething():Foo

今天我遇到了这个:

public /*int*/ doSomething()

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

2 个答案:

答案 0 :(得分:0)

让我们一步一步走:

  1. public function setSomething(Foo $bar):void
  2. 此处Foo提示告诉$ bar必须是Foo类的实例。 void告诉函数必须返回任何内容

    1. public function getSomething():Foo
    2. 这里Foo提示函数必须返回Foo

      的实例
      1. public /*int*/ doSomething()
      2. 在这种情况下,实际上没有使用任何类型提示。 /*int*/只是一个评论。我猜有人在没有PHP的类型提示时就离开了。

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

答案 1 :(得分:0)

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

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

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

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