It would be nice addition to have a Range literal in PHP. The "range()"
implements the functionality in part, but in an extremly ineffecient
manner. What I would like to see, is a builtin Range 'type', which only
holds the start and end points.
Let's consider some practical applications:
1:
$str = "this is a test string";
$str[0...4] #=> "this"
2:
$arr = ['this', 'is', 'a', 'test']
$arr[2..4] #=> ['is', 'a']
3:
$str = "hello world";
$offset = 6;
$end = 11;
substr($str, $offset...$end); #=> "world"
4:
foreach ('a'..'d' as $chr) {
print $chr;
}
# Prints a,b,c
5:
$range = 5...10;
range_first($range); #=> 5
range_last($range); #=> 10
range_size($range); #=> 6
6:
$range = range(0, 3);
for ($i = 0; $i == $range; $++) {
print $i;
}
# Prints 0, 1, 2, 3
$i = 0;
while ($i == $range) {
print $i++;
}
# Prints 0, 1, 2, 3
An implementation of my suggestion would obviously require some work
(hacking?) inside the Zend Engine, which, I believe, is best left up to
people with a understanding of its internals (which rules me out).
Let me know what you think.
Btw: Is there a PHP mechanism for language improvement suggestions (such as
Perl's RFC or Ruby's RCR)?
/A
--
Anders Johannsen, Denmark
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]