我开始使用理论ORM映射系统。
setter函数中的void和self有什么区别?
空洞
/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): void
{
$this->firstname = $firstname;
}
Run Code Online (Sandbox Code Playgroud)
和
自
/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): self
{
$this->firstname = $firstname;
return $this
}
Run Code Online (Sandbox Code Playgroud)
void表示该方法不返回任何内容。(在PHP 7.1中添加)。从文档中:
引入了void返回类型。以void声明为返回类型的函数必须完全省略其return语句,或者使用空的return语句。NULL不是void函数的有效返回值。
self表示该方法返回类实例(用于方法链接等)。这意味着您可以使用如下所示的类:
$class->setFirstname('Foo')->setLastname('Bar');
Run Code Online (Sandbox Code Playgroud)
如果您查看两种方法,则会看到的方法void不包含任何return语句,而第二种方法则包含return $this。
注意:就像@ simon.ro在原始问题下的评论中提到的那样:
只是要明确指出:问题和答案都不以任何方式局限于教义实体。self和void返回类型提示是php的语言功能。
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |