将变量解析为 class 对象
Parse variable to class object
以下情况:
foreach ($this->allEvents as $event) {
//use $event here
}
allEvents
(数组)存储了Event
class的几个对象。
现在我希望我的 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
}
断言不会在生产代码中执行,因此使用它们不会产生额外的开销。
以下情况:
foreach ($this->allEvents as $event) {
//use $event here
}
allEvents
(数组)存储了Event
class的几个对象。
现在我希望我的 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
}
断言不会在生产代码中执行,因此使用它们不会产生额外的开销。