For me,
foreach (range($low, $high) as $i)
is easier to understand than
for ($i = 0; $i <= $high; $i++)
By easier to understand I do not only mean that the beginning of the
loop marked by the foreach/range construct is easier to read. While
reading the body of the loop I can be sure that $i is not unexpectedly
modified, for instance.
Be that as it may, what I would like to propose should be useful for use
cases other than the one (see above) that triggered me thinking about this.
range() returns an array that contains all elements requested. Depending
on the amount of elements, this might not be optimal.
One of the most common usages of generators that I have seen is an
alternative, userland implementation of the range() function:
function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
yield $i;
}
}
This makes me wonder: would there be a benefit in changing the
implementation of range() to return a generator instead of an array? And
if so, would this constitute a break in backward compatibility?
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php