Re: New feature: additional syntax proposal for Foreach
On Wed, Jul 3, 2013 at 10:01 PM, Chris London <[email protected]> wrote:
> Hello community,
>
> This is my first post here. I hope to improve my participation in the
> community and give back to the technology that has done so much for my
> career. My first attempt is to propose an additional syntax for the
> Foreach statement.
>
> Background:
>
> There are times in our code where we can leave things blank that we don't
> need, such as:
>
> for ( ; ; ) {
>
> }
>
> - and -
>
> list( , $foo, $bar) = array('ignore', 'myFoo', 'myBar');
>
> Proposal:
>
> I have found over the years that there are times when I want to loop
> through an associative array but I don't need the value. I would like to
> allow the following syntax:
>
> foreach ($array as $key => ) {
>
> }
>
> Please let me know your thoughts.
>
> Thanks
> Chris London
>
While it does sometimes happen that you do not need the value, it's not
particularly common and as such I don't think it's necessary to add
additional syntax for this case. It's fairly straightforward to abstract
this behavior away into a separate function used as follows:
foreach (keys($iterable) as $key) { ... }
Where the keys function is defined as:
function keys($iterable) {
foreach ($iterable as $key => $_) {
yield $key;
}
}
This is something you write once (with the slightly ugly $key => $_), but
can then always use to have clear code :) Of course, as already said in the
other mail, for arrays the keys() function already exists as array_keys(),
so you don't even have to write anything yourself.
Nikita
Thread (3 messages)