返回每个对象或一个 arrayCollection 之间的区别


public function getInvoiceItemsByType($type)
{
return $this->invoiceItems->filter(function ($invoice) use ($type) {
/** @var InvoiceItem $invoice */
return $invoice->getType() == $type;
}
);
}
public function getInvoiceItemsByType($type) {
foreach ($this->invoiceItems as $invoice) {
if ($invoice->getType() == $type) {
return $invoice;
}
}
return null;
}

这两个功能之间有区别吗?有人告诉我有一个,但我无法找到它到底是什么,以及一个函数而不是另一个函数如何影响我的代码

区别在于

return $this->invoiceItems->filter(function ($invoice) use ($type) {
/** @var InvoiceItem $invoice */
return $invoice->getType() == $type;
});

当找不到任何内容时,将返回所有匹配的项目或空的 ArrayCollection。


foreach ($this->invoiceItems as $invoice) {
if ($invoice->getType() == $type) {
return $invoice;
}
}
return null;

仅当数组中与$invoice->getType() == $type或 null 匹配的第一项根本不存在时,才会返回它。

相关内容

  • 没有找到相关文章

最新更新