类型声明和类型注释是否过时或相互补充?

Ale*_*lec 5 php return-type docblocks type-declaration php-7

我总是使用注释来声明返回类型.例如:

/**
 * @return SomeClass
 */
public function () { ... }
Run Code Online (Sandbox Code Playgroud)

但现在我看到还有另一种方式:

public function () : SomeClass { ... }
Run Code Online (Sandbox Code Playgroud)

我应该在这些之间做出选择,使用两者,还是他们有一些我应该注意的根本区别?

TIG*_*GER 2

注解与返回类型无关。如果您返回其他内容,它不会抛出任何错误或警告。尽管它对文档很有帮助。

除此之外,另一种方法是 php7返回类型声明,它支持所有相同的类型作为参数。为了指定返回类型,我们添加一个冒号,然后在左大括号之前添加类型。

严格类型对返回类型声明也有影响。在默认的弱模式下,如果返回的值还不是该类型,则它们将被强制为正确的类型。强模式下,返回值必须是正确的类型,否则会抛出TypeError。

添加返回类型可以让您确保函数返回预期的内容,并且可以轻松地预先了解函数的工作原理。

笔记 :

当重写父方法时,子方法必须与父方法上的任何返回类型声明相匹配。如果父方法没有定义返回类型,则子方法可能会这样做。

  • 问题不是“返回类型是什么?” (3认同)