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)
题
我应该在这些之间做出选择,使用两者,还是他们有一些我应该注意的根本区别?
注解与返回类型无关。如果您返回其他内容,它不会抛出任何错误或警告。尽管它对文档很有帮助。
除此之外,另一种方法是 php7返回类型声明,它支持所有相同的类型作为参数。为了指定返回类型,我们添加一个冒号,然后在左大括号之前添加类型。
严格类型对返回类型声明也有影响。在默认的弱模式下,如果返回的值还不是该类型,则它们将被强制为正确的类型。强模式下,返回值必须是正确的类型,否则会抛出TypeError。
添加返回类型可以让您确保函数返回预期的内容,并且可以轻松地预先了解函数的工作原理。
笔记 :
当重写父方法时,子方法必须与父方法上的任何返回类型声明相匹配。如果父方法没有定义返回类型,则子方法可能会这样做。