> No mention of yielding keys in the comprehensions. Presume that would
> work?
Yup, that works too. I also included an example in the mail:
$firstNames = [foreach ($users as $user) yield $user->id =>
$user->firstName];
This creates a map from ids to first names.
> The simplest example I could think of using Memcached
> (assuming libmemcached fetch() does return as soon as it recieves an
> item)
>
> Eg.
>
> function *getMulti(Memcached $memcached, array $keys)
> {
> if ($memcached->getDelayed($keys)) {
> while ($item = $memcached->fetch())
> yield $item['key'] => $item['value'];
> }
> }
>
> foreach(getMulti($memcached, ['foo', 'bar', ... ]) as $key => $value)
> {
> doSomeWork();
> }
>
> So doSomeWork would be called as soon as a single value is available,
> rather
> than having to wait til all values have returned.
>
> Should in theory work right?
Yup, that should work :)
Nikita
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php