我的Java经验告诉我,我可以创建这样的通用集合:
Collection<E> collection = new Collection<E>();
我想知道这是否可能在Laravel(至少5.2+)?我已经使用Laravel将近3年了,现在只是想知道这件事。
例如,我在创建Laravel模型转换器函数时考虑到了这一点,如下所示:
目前的Laravel功能:
public function transformMultiple(Collection $models){
$collection = collect();
foreach($models as $m){
$collection->push($this->transform($m));
}
return $collection;
}
使用泛型的假设函数:
public function transformMultiple(Collection<Foo> $models){
$collection = collect();
foreach($models as $m){
$collection->push($this->transform($m));
}
return $collection;
}
答案 0 :(得分:0)
感谢来自@AlexSlipKnot的评论,我相信PHP目前不支持Generics;但是,it may support it in the future。他在评论中的其他链接(StackOverflow对a similar question的回答)也为自定义实现提供了深入的指导;但是,如果要开发自己的自定义实现,他们需要注意适用的O.O Design Principles。