这取自php.net手册中的json_decode(),例4,从底部的第5行:
foreach (range(4, 3, -1) as $depth)
我不确定那里-1的目的是什么。我尝试了范围(4,3,1)和范围(4,3,-1),它给出了相同的结果。第一个示例中的1是默认值,因此它可以是范围(4,3)。我只是尝试使用print_r(range(4,3,-1);因此php.net上的示例可能是另一回事。我在网上看,没有关于它的信息,或者没有马上。
答案 0 :(得分:2)
它实际上会忽略$step
参数的符号,并根据$start > $end
还是$end > $start
确定是否增加或减少。例如:
<?php print_r( range( 20, 11, 3 ) ); ?>
Array
(
[0] => 20
[1] => 17
[2] => 14
[3] => 11
)
<?php print_r( range( 11, 20, -3 ) ); ?>
Array
(
[0] => 11
[1] => 14
[2] => 17
[3] => 20
)
答案 1 :(得分:0)
步骤自动转换为正数(是的,这里的手册不正确)
所以这些都可行:
var_dump(
range(1, 5, 1), // positive integer
range(1, 5, -1), // negative integer
range(1, 5, 2),
range(1, 5, .5), // positive fractional number
range(1, 5, "-0.1") // negative fractional number passed as string
);
另外,如果你使用浮动值作为$ step,所有值也将浮动,即使它们是整数。