array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.range.php', 1 => 'range', ), 'up' => array ( 0 => 'ref.array.php', 1 => '配列 関数', ), 'prev' => array ( 0 => 'function.prev.php', 1 => 'prev', ), 'next' => array ( 0 => 'function.reset.php', 1 => 'reset', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/array/functions/range.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
range — ある範囲の要素を含む配列を作成する
ある範囲の要素を含む配列を作成します。
start
と end
が両方文字列で、かつ step
が整数の場合、
生成される配列はバイト列のシーケンスになります。
そうでない場合、生成される配列は数値のシーケンスになります。
start
が end
よりも小さい場合、シーケンスは増加します。
そうでない場合、シーケンスは減少します。
start
シーケンスの最初の値。
end
シーケンスの最後としてあり得る値。
step
step
は、生成されるシーケンスの個別の値が
どれくらい離れているかを指定します。
シーケンスが減少する場合、step
は負の値を指定しても構いません。
step
が 端数のない float
の場合、整数として解釈されます。
要素のシーケンスを配列として返します。
最初の要素は start
になり、
end
になるまで続きます。
シーケンスのそれぞれの値は、step
だけ離れています。
返される配列の最後の要素は、
end
または シーケンスの直前の要素になります。
どちらになるかは、step
の値によります。
start
と end
が両方文字列で、かつ step
が整数の場合、
生成される配列は、バイト列のシーケンスになります。
一般的にはラテン文字の ASCII 文字からなるシーケンスです。
start
, end
, step
のうち少なくともひとつが float の場合、
生成される配列は float のシーケンスになります。
その他の場合、生成される配列は整数のシーケンスになります。
step
が 0
の場合、ValueError がスローされます。
start
, end
, step
が有限の値(is_finite()) でない場合、
ValueError がスローされます。
step
が負の値なのに、生成される範囲が増えている(つまり、 $start <= $end
) 場合、
ValueError がスローされます。
start
または end
が空文字列 ''
の場合、E_WARNING
が発生し、空文字列は 0
として解釈されます。
start
または end
が
数値形式の文字列
でない、長さが1バイトより大きい値の場合、E_WARNING
が発生します。
start
または end
が
暗黙のうちに整数にキャストされた文字列の場合、
E_WARNING
が発生します。なぜなら、他の境界の入力値は数値だからです。
step
が float の場合、
かつ start
と end
が
数値形式の文字列
でない場合、E_WARNING
が発生します。
バージョン | 説明 |
---|---|
8.3.0 |
start と end
が両方文字列の場合、range() は常にバイト列を要素とした配列を生成するようになりました。
これより前のバージョンでは、境界の値のうちのひとつが数値形式の文字列の場合に、もう一方の境界の値を整数にキャストしていました。
|
8.3.0 |
start または end が
暗黙のうちに整数にキャストされた文字列の場合、
E_WARNING が発生するようになりました。
なぜなら、他の境界の入力値が数値だからです。
|
8.3.0 |
start または end
が数値形式の文字列でなく、かつ長さが1バイトより大きい値の場合、
E_WARNING が発生するようになりました。
|
8.3.0 |
start または end が空文字列の場合、E_WARNING が発生するようになりました。
|
8.3.0 |
step が 端数のない float
の場合、整数として解釈されるようになりました。
|
8.3.0 |
step が負の値なのに、生成される範囲が増えている場合、
ValueError がスローされるようになりました。
|
8.3.0 |
step が有限の値でない場合、
ValueError がスローされるようになりました。
|
8.3.0 |
start または end
が配列、object、resource の場合、
TypeError がスローされるようになりました。
これより前のバージョンでは、これらの値は暗黙のうちに整数にキャストされていました。
|
例1 range() の例
<?php
echo implode(', ', range(0, 12)), PHP_EOL;
echo implode(', ', range(0, 100, 10)), PHP_EOL;
echo implode(', ', range('a', 'i')), PHP_EOL;
echo implode(', ', range('c', 'a')), PHP_EOL;
echo implode(', ', range('A', 'z')), PHP_EOL;
?>
上の例の出力は以下となります。
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 a, b, c, d, e, f, g, h, i c, b, a A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z