Интересная php задача с классом и циклом

168
01 марта 2018, 13:41

Помогите решить задачу, пожалуйста с:

Суть в том, что надо создать объект класса и написать такой foreach или for, чтобы вывести числа от 1 до 10. Но в классе ни в коем случае не должны быть массивы или объекты. Вот так

Answer 1

Вариант для PHP>=7.1:

class Bar
{
    public function get_array(int ...$ints): Array
    {
        return $ints;
    }
}
$ob = new Bar;
foreach ($ob->get_array(1,2,3,4,5,6,7,8,9,10) as $int) {
    echo "$int ";
}

Результат:

1 2 3 4 5 6 7 8 9 10 

UPD-1 Можно и проще сгенерировать массив в теле метода:

class Bar
{
    public function get_array(): Array
    {
        return range(1, 10);
    }
}
$ob = new Bar;
foreach ($ob->get_array() as $int) {
    echo "$int ";
}

UPD-2 По вопросу из комментария "это можно сделать с помощью итератора?" я сделал вывод, что задача была в генерации массива с помощью генератора:

class Bar
{
    public function get_array($start, $limit): Generator
    {
        for ($i = $start; $i <= $limit; $i++) {
            yield $i;
        }
    }
}
$ob = new Bar;
foreach ($ob->get_array(1, 10) as $int) {
    echo "$int ";
}

Результат:

1 2 3 4 5 6 7 8 9 10 
READ ALSO
Как сделать редактор текста на сайте в Laravel

Как сделать редактор текста на сайте в Laravel

Например, у меня есть блог, и чтобы добавить новость, мне нужно текст заключать в тегиНо когда я вывожу новость, то Laravel не распознает теги

237
Редактировать колекцию продуктов в Magento

Редактировать колекцию продуктов в Magento

У меня есть функция которая грузится при загрузке списка продуктов в магазине (событие 'catalog_block_product_list_collection')Также написал функцию которая...

167
file_get_contents array foreach

file_get_contents array foreach

Здравствуйте ! Прошу помочь Основная проблема тут как считаю я

172
Замена в массиве

Замена в массиве

ЗдравствуйтеПрошу помочь со следующей проблемой

225