将变量解析为类对象

时间:2018-08-22 20:22:40

标签: php phpstorm

以下情况:

foreach ($this->allEvents as $event) {
    //use $event here
}

allEvents(数组)存储Event类的几个对象。 现在,我希望我的IDE(PhpStorm)向我建议$event拥有的所有方法。但是很不幸的是不知道$event是一个Event对象。

是否有可能将$event转换为Event类的对象? 类似于Java中的类型转换:(Event) event

2 个答案:

答案 0 :(得分:2)

感谢@Xatenev 问题是$ allEvents的注释错误。 它必须看起来像

/**
 * @var Event[]
 */
private $allEvents = array();

因此PhpStorm将正确理解为Event对象数组

答案 1 :(得分:0)

或者,您可以在assert中使用foreach来使您的IDE知道变量的类型:

foreach ($this->allEvents as $event) {
    assert($event instanceof Event);
    //use $event here
}

断言不会在生产代码中执行,因此使用它们不会产生额外的开销。