За последние 24 часа нас посетили 22734 программиста и 1268 роботов. Сейчас ищут 800 программистов ...

использование генератора в параметре Э

Тема в разделе "PHP для новичков", создана пользователем Garrys11, 25 июн 2022.

  1. Garrys11

    Garrys11 Новичок

    С нами с:
    25 июн 2022
    Сообщения:
    2
    Симпатии:
    0
    Функции sellect и sqr - генераторы. Sellect выбирает из массива четные числа, sqr возводит их в квадрат
    Есть массив чисел.

    Код (Text):
    1. $arr = [1,2,3,4,5,6];
    2. $sellect = sellect($arr, function($e){return $e % 2 == 0 ? true : false; });
    3. //foreach ($sellect as $v) echo "$v ";
    4. $sqr = sqr($sellect, function($e){return $e * $e; });
    5. foreach($sqr as $val) echo "$val ";
    4я строчка закоментирована, в таком случае результат работы будет 4 16 36
    Если 4я строчка будет выполняться, то результат будет 2 4 6, а 4 16 36 выводиться не будут, с чем это связано?
     
  2. Garrys11

    Garrys11 Новичок

    С нами с:
    25 июн 2022
    Сообщения:
    2
    Симпатии:
    0
    *в аргументе функции
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    потому что, генератор закончил свой перебор rows на цикле foreach (1), поэтому для следующей итерации не из чего брать "дальше". "Расчет окончен".
    Генератор сохраняет состояние крч
     
    Garrys11 нравится это.