<?php function from() { yield 'a' => 1; yield 'b' => 2; echo "--from return END--\n"; return 'END'; } function gen($from) { var_dump(yield from $from); } $from = from(); $g1 = gen($from); $g2 = gen($from); echo "g1: expect a => 1\n"; var_dump($g1->key()); // $from yield a => 1 var_dump($g1->current()); $g1->next(); // $from yield b => 2 echo "g2: expect b => 2\n"; var_dump($g2->key()); var_dump($g2->current()); echo "expect from return END, gen var_dump(END)\n"; $g2->next(); // $from return END, gen() var_dump, $g2 closed echo "g1: expect gen() var_dump(END), then NULL => NULL, actually no var_dump, NULL => 2\n"; var_dump($g1->key()); // $from already closed, expect gen() var_dump, $g1 closed var_dump($g1->current());
You have javascript disabled. You will not be able to edit any code.