chris_archer: (Default)

Однажды я жаловался, что

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

в PHP не работает. Так вот. Начиная с PHP7 благодаря новому парсингу синтаксиса

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

очень даже работает.

Originally published at Chase Your Dreams!. You can comment here or there.
chris_archer: (Default)

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

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

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

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

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

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

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

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

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

  1. (0..9).each { |i| print i }
Originally published at Chase Your Dreams!. You can comment here or there.

Profile

chris_archer: (Default)
chris_archer

September 2017

S M T W T F S
     12
34 56789
10 111213141516
17181920212223
24252627282930

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 21st, 2017 08:39 am
Powered by Dreamwidth Studios