【发布时间】:2015-04-09 18:39:49
【问题描述】:
我有 3 个课程,例如:
class Foo
{
static function test()
{
return new static();
}
}
class Bar extends Foo
{}
class Baz extends Foo
{}
现在如果调用:
$var = Bar::test();
我希望 PhpStorm 将 $var 识别为 called_class,此处为:Bar。
但是,如果我这样做 $var = Baz::test(); $var 是 Baz 实例。
如何获取动态的 called_class 以向 PhpStorm 指示返回的类型?
我有一个类似
的语法/** @return "called_class" */
帮助 PhpStorm 并指明类型?
【问题讨论】:
-
我真的不明白你的问题。你想要像
return static;一样的东西吗? -
如果您有
static方法,则不能返回$this,因为您目前根本没有实例。您可以编辑您的问题以表明您真正想要返回的内容吗? -
@return static(用于静态和“正确”方法)或@return $this(仅用于“正确”方法)可以正常工作。 -
对不起,是的,我做错了例子。我编辑:它返回不是“this”,因为这是不可能的,
return new static();