$step in range()的负值,PHP
这摘自php.net json_decode()手册,示例4,底部第5行:$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
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。