以下情况:
foreach ($this->allEvents as $event) {
//use $event here
}
allEvents
(数组)存储Event
类的几个对象。
现在,我希望我的IDE(PhpStorm)向我建议$event
拥有的所有方法。但是很不幸的是不知道$event
是一个Event对象。
是否有可能将$event
转换为Event
类的对象?
类似于Java中的类型转换:(Event) event
答案 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
}
断言不会在生产代码中执行,因此使用它们不会产生额外的开销。