2017-08-04 14 views
-1

これは、json_decode()が下から、実施例4は、第5行のphp.netのマニュアルから取られている:負の値、PHP

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

私はわからないものをそこにはその目的があります-1。私は範囲(4,3,1)と範囲(4,3、-1)を試して、同じ結果を得ました。最初の例の1がデフォルトであるため、range(4,3)になります。私はprint_r(range(4,3、-1))のようなものでしか試していなかったので、php.netの例は別のものかもしれません。ネットを見ていて、それに関する情報はありません。すぐに

+0

http://php.net/manual/en/function.range.php読んだマニュアル – Zeljka

+0

ステップは正の数で指定してください – Sergej

+0

@Aaron Smith:何もステップは自動的に正の数値*に変換されます。つまり、分数単位で設定することもできます。 –

答えて

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 
) 
+0

ありがとう、ありがとう。だから、基本的にphp.netの例は間違っていますか?私もこれをテストしてきました。 –

+0

php.netマニュアルに否定的なステップがある例はありません。 – Sergej

+0

http://php.net/manual/en/function.json-decode.php - 例#4、下から5行目。 –

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としてfloat値を使用すると、整数であってもすべての値が浮動小数点になります。