Разница между возвратом каждого объекта или одного 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;
}

есть ли разница между этими двумя функциями? Кто-то сказал мне, что есть один, но я не могу найти, что именно, и как одна функция вместо другой повлияет на мой код

3

Решение

Разница в том, что

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 или ноль, если он вообще не существует.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]