Php 如何记录实现多个接口的类?

Php 如何记录实现多个接口的类?,php,return-type,Php,Return Type,假设你有一节课 class View implements ViewInterface, TemplateInterface { private $template; public function setTemplate($template) { $this->template = $template; return $this; } } 然后,当您记录TemplateInterface并使用setTemplate(

假设你有一节课

class View implements ViewInterface, TemplateInterface {

     private $template;

     public function setTemplate($template) {
         $this->template = $template;
         return $this;
     }
}
然后,当您记录
TemplateInterface
并使用
setTemplate($template)
方法时,您会将什么作为其返回类型

如果我把
View
作为返回类型,然后我有不同的类实现
TemplateInterface
,它们不是
View
类型,那么我的API文档就错了

您是将返回类型设置为
视图
视图界面
模板界面
,还是它们的混合

namespace Views\Interfaces;

interface TemplateInterface {

    /* --------------------------------- */
       public function getTemplate();
    /* ---------------------------------
     * @args: void
     *
     * @return: String - The name of the template.
    */

    /* ------------------------------------------ */
       public function setTemplate($template);
    /* ------------------------------------------
     * @arg 1: (String $template) - The name of the template file.
     *
     * @return: Not sure yet!!!
    */

}

界面应如下所示:

interface TemplateInterface
{
    /**
     * @return TemplateInterface
     */
    public function setTemplate($template);
}
和视图类:

class View implements ViewInterface, TemplateInterface {

     private $template;

     /**
      * @return TemplateInterface
      * or (maybe better)
      * @return View (as it implements TemplateInterface and is more specialized)
      */
     public function setTemplate($template) {
         $this->template = $template;
         return $this;
     }
}

是的,我在想,但是当你将一个对象注入到一个方法中,并且该对象实现了一个接口时,你把接口的名称作为该对象的类型提示放在方法签名中,所以我对返回类型有这样的感觉,为什么它会改变,并说对象类型而不是对象所属的接口implementing.TemplateInterface::setTemplate()的返回类型是什么??它返回
视图的一个实例。问题是,在我的API文档中,我放置了
@return:View
,然后我有一个不同的类实现了
TemplateInterface
,它将不是
View
类型,所以API将是独立的。@David当然你可以自由使用自己的语法,但是你应该检查@David and(新版本)显示
模板界面
代码