我应该使用@return self,this还是当前的类?

时间:2011-08-04 17:04:35

标签: php documentation phpdoc doc

我有一个返回当前对象的方法,我该如何记录它?

/**
 * set something
 *
 * @return this
 */
public function setSomething(){
            // ...
    return $this;
}

或者我应该@return self还是@return Current_Class_Name

3 个答案:

答案 0 :(得分:35)

目前正在使用PHP Standards Recommendation (PSR) (PSR-5) that proposes @return $ this ,以表示返回了相同的实例。

  

$ this,此类型适用的元素与给定上下文中的当前类完全相同。因此,此类型是更严格的静态版本,此外,返回的实例不仅必须属于同一个类,还必须是同一个实例。

     

此类型通常用作实现Fluent Interface设计模式的方法的返回值。

这种表示法目前被流行的IDE使用,例如PhpStorm和Netbeans。

答案 1 :(得分:29)

@return Current_Class_Name肯定会起作用,也是我喜欢的。

@return self也可能适用于某些程序。

@return this很糟糕,因为这不是类型名称。

答案 2 :(得分:5)

这个问题已经过时了,但我只想与大家分享!

对于使用 NetBeans 8.1

至少 ..这种表示法使得代码自动完成在IDE中正常工作

/**
 * Method that returns $this instance (using late state binding)
 * @return static
 */
 public function iWillReturnMyself ( ) {
     return $this;
 }

对于NetBeans8.1用户,我说至少,但可能在旧版本和/或其他IDE上工作 =]