我有一个返回当前对象的方法,如何对其进行文档化?
/**
* set something
*
* @return this
*/
public function setSomething(){
// ...
return $this;
}
还是应该使用@return self
,还是@return Current_Class_Name
?
为什么这个问题不是“基于主观看法”的(应该被重新打开):符合标准和IDE类型提示支持。
我有一个返回当前对象的方法,如何对其进行文档化?
/**
* set something
*
* @return this
*/
public function setSomething(){
// ...
return $this;
}
还是应该使用@return self
,还是@return Current_Class_Name
?
为什么这个问题不是“基于主观看法”的(应该被重新打开):符合标准和IDE类型提示支持。
有一个PHP标准推荐(PSR),目前处于草案状态,(PSR-5)提出使用@return $this来表示返回的是同一实例。
$this,该类型适用于此元素的实例与当前类在给定上下文中的实例完全相同。因此,此类型是static的更严格版本,除了返回的实例必须是相同的类之外,还必须是相同的实例。
此类型通常作为实现流畅接口设计模式的方法的返回值。
目前,流行的IDE,如PhpStorm和Netbeans都使用了这种表示法。
$this
。我认为这并不正确。它只是允许它,就像Current_Class_Name
和self
一样。 - marcv@return $this
而不是 @return this
,就像问题所问的那样。 - SOFe@return $this
。 - Sven@return Current_Class_Name
一定可行,这也是我喜欢的方式。
@return self
在某些程序中也可能可行。
@return this
是错误的,因为this不是一个类型名。
@return self
。 - sarunast/** @return $this */
是唯一真正的流畅的phpdoc类型。而 @return Current_Class_Name
不是流畅的,当你从子类扩展类并调用函数时会注意到这一点。 - Daniel W./**
* Method that returns $this instance (using late state binding)
* @return static
*/
public function iWillReturnMyself ( ) {
return $this;
}
我说至少适用于NetBeans8.1用户,但可能也适用于旧版本和/或其他IDE =]
name
未找到"。 - PeterM/**
* set something
*
* @return self
*/
public function setSomething(){
// ...
return $this;
}
@return static
。 - faintsignal