$step in range()的负值,PHP

$step in range()的负值,PHP,php,Php,这摘自php.net json_decode()手册,示例4,底部第5行: foreach (range(4, 3, -1) as $depth) 我不知道那是为了什么-1那里。我尝试了范围(4,3,1)和范围(4,3,-1),它给出了相同的结果。第一个示例中的1是默认值,因此它可以是范围(4,3)。我只是在尝试打印(范围(4,3,-1)之类的东西;因此php.net上的示例可能是另一回事。我在网上查看,没有关于它的任何信息,或者说没有。它实际上会忽略$step参数的符号,并纯粹根据$star

这摘自php.net json_decode()手册,示例4,底部第5行:

foreach (range(4, 3, -1) as $depth)

我不知道那是为了什么-1那里。我尝试了范围(4,3,1)和范围(4,3,-1),它给出了相同的结果。第一个示例中的1是默认值,因此它可以是范围(4,3)。我只是在尝试打印(范围(4,3,-1)之类的东西;因此php.net上的示例可能是另一回事。我在网上查看,没有关于它的任何信息,或者说没有。它实际上会忽略
$step
参数的符号,并纯粹根据
$start>$end
$end>$start
来确定是递增还是递减e:

<?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
)

大堆
(
[0] => 20
[1] => 17
[2] => 14
[3] => 11
)
大堆
(
[0] => 11
[1] => 14
[2] => 17
[3] => 20
)

步骤自动转换为正数(是的,此处的手册不正确)

因此,所有这些都将起作用:

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,则所有值也将是浮点值,即使它们是整数。

read Documentation step应为正数number@Aaron史密斯:没什么,步长会自动转换成正数……这意味着你也可以设置分数增量!@Sergej:不,它可以是任何可以被转换的st到一个数字,谢谢。所以基本上php.net上的示例是错误的?我也一直在测试。-示例#4,从底部开始的第5行。这只是为了可读性,因为4>3,步骤应该是-1。