<?php
function xrange($start, $limit, $step = 1) {
if ($start < $limit) {
if ($step <= 0) {
throw new LogicException('Step must be +ve');
}
echo $step;
for ($i = $start; $i <= $limit; $i += $step) {
yield $i;
}
}
}
/*
* Note that both range() and xrange() result in the same
* output below.
*/
echo 'Single digit odd numbers from range(): ';
foreach (range(1, 9, -5) as $number) {
echo "$number ";
}
echo "\n";
Single digit odd numbers from range():
Fatal error: Uncaught ValueError: range(): Argument #3 ($step) must be greater than 0 for increasing ranges in /in/9dBlQ:21
Stack trace:
#0 /in/9dBlQ(21): range(1, 9, -5)
#1 {main}
thrown in /in/9dBlQ on line 21
Process exited with code 255.