PHP упростить код
Есть следующий код:
public static function all()
{
$posts_array = [];
for ($i=0; $i < 4; $i++) {
$posts_array[] = new Post('title', 'url', 'description', 'text');
}
return $posts_array;
}
Интересует, как можно вернуть сразу несколько Post, без использования переменной.
Пробовал так:
public static function all()
{
for ($i=0; $i < 4; $i++) {
return new Post('title', 'url', 'description', 'text');
}
}
Но в таком случае возвращается только один элемент.
Ответы (1 шт):
Автор решения: Scruffy the Janitor
→ Ссылка
Вы должны понимать, что ключевое слово return выходит из цикла на первой же итерации. ИМХО ответ на вопрос - никак. Вы можете вернуть какую-либо совокупность объектов типа массива . Либо же использовать класс итератор с next() . Php учил лет 10 назад , поэтому точно не помню. Короче управлять можно итерациями , получил объект, хочешь второй написал hasnext() и next() типа такого. Почитайте в оф. Документации про итераторы и генераторы, может вам это нужно