PHP 5.5 yield"> PHP 5.5 yield">

Vulpo One

PHP 5.5 yield

Извращаюсь с новой игрушкой

<?php
$a = function () {for ($i = 0; $i < 10; $i++) yield $i;}; foreach ($a() as $i) echo $i; // 0123456789

Жаль, что не работает foreach ($a as $i) echo $i;, тогда можно было бы написать короче

<?php
foreach(function () {for ($i = 0; $i < 10; $i++) yield $i;} as $i) echo $i;

Или будь PHP похож на одного из своих предков, можно было бы

<?php
foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})() as $i) echo $i;

Даже извращения не работают типа

<?php
foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})->__invoke() as $i) echo $i;

Если кто не догнал, я пытаюсь сделать вот это:

(0..9).each { |i| print i }