将变量解析为 class 对象

Parse variable to class object

以下情况:

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

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

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

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

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

因此 PhpStorm 会将其正确理解为事件对象数组

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

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

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