我想知道如何在继承类中使用自动补全。举个例子,我有这样的代码:
<?php
class A {
/**
* @return $this
*/
function a(){
return $this;
}
/**
* @return $this
*/
function b(){
return $this;
}
}
class B extends A{
function c() {
}
}
$object = new b();
$object->a()->b()->c();
?>当我尝试用ctrl+click导航时,我可以找到a和b函数,但是我怎样才能找到c呢?
谢谢。
发布于 2011-05-06 23:46:31
您必须使用正确的PHPDoc样式文档来添加自动补全。在@return语句中,您必须指明返回的实际类型(类名),而不是变量:
<?php
class A {
/**
* @return A
*/
function a(){
return $this;
}
/**
* @return A
*/
function b(){
return $this;
}
}
class B extends A{
/**
* @return B
*/
function c() {
}
}
$object = new B();
$object->a()->b()->c();
?>现在在你的例子中,问题是,它不能真正与子类一起工作,因为文档说你,例如$object-> A ()返回一个类A的实例。因此,自动补全不会显示来自类B的方法(你可以调用它们)。
https://stackoverflow.com/questions/5913536
复制相似问题