Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在setter方法中void和self有什么区别_Php - Fatal编程技术网

Php 在setter方法中void和self有什么区别

Php 在setter方法中void和self有什么区别,php,Php,我开始使用ORM映射系统 在setter函数中,void和self有什么区别 无效 /** * @param string|null $firstname */ public function setFirstname(?string $firstname): void { $this->firstname = $firstname; } 及 自我 /** * @param string|null $firstname */ public function setFirstnam

我开始使用ORM映射系统

在setter函数中,void和self有什么区别

无效

/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): void
{
    $this->firstname = $firstname;
}

自我

/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): self
{
    $this->firstname = $firstname;
    return $this
}
无效的
void
表示该方法不返回任何内容。(). 从文件中:

引入了void返回类型。以void作为返回类型声明的函数必须完全忽略其返回语句,或者使用空的返回语句。NULL不是void函数的有效返回值

自己
self
表示方法返回类实例(用于方法链接等)。这意味着您可以像这样使用该类:

$class->setFirstname('Foo')->setLastname('Bar');
如果查看这两个方法,您会发现带有
void
的方法不包含任何
return
-语句,而第二个方法具有
return$this

注意:正如@simon.ro在原始问题下的评论中提到的:


只是要明确指出:无论是问题还是答案都不局限于实体主义。self和void返回类型提示是php的语言特性


@MagnusEriksson这可以作为答案发布,只是为了明确说明:问题和答案都不以任何方式局限于条令实体
self
void
返回类型提示是php的语言特性。