Если вы хотите добиться того же с более функциональным и элегантным способом, вы можете использовать array_reduce
array_reduce($item->getProperty(), function($sum, $single) {
if (strpos($single->getPropertyName(), 'foo') === 0) {
$sum++;
}
return $sum;
});
Менее читаемое, но более элегантное однострочное решение будет выглядеть так:
array_reduce($item->getProperty(), function($sum, $single) { return (strpos($single->getPropertyName(), 'foo') === 0) ? ++$sum : $sum; }
И теперь, когда у нас есть функции коротких стрелок в PHP, вы можете использовать это, если вы работаете на PHP 7.4:
array_reduce($item->getProperty(),
fn($sum, $single) => (strpos($single->getPropertyName(), 'foo') === 0) ? ++$sum : $sum);