(PHP 4, PHP 5, PHP 7, PHP 8)
range — Создаёт массив, содержащий диапазон элементов
Создаёт массив, содержащий диапазон элементов.
Если оба параметра — start
и end
— будут строками (string), а параметр step
— числом (int), то созданный массив будет последовательностью байтов. В других случаях созданный массив будет последовательностью чисел.
Последовательность будет возрастать, если значение параметра start
меньше или равно значению параметра end
. В противном случае последовательность будет убывать.
start
Первое значение последовательности.
end
Последнее значение последовательности.
step
Параметр step
определяет, на сколько будут изменяться значения в создаваемой последовательности.
В параметр step
можно передавать отрицательное значение, если нужно создать убывающую последовательность.
Если значение параметра step
будет числом с плавающей точкой (float) без дробной части, то оно будет интерпретировано как целое число (int).
Возвращает последовательность элементов в виде массива (array), в котором первый элемент получает значение параметра start
, а последний — параметра end
, в которой каждое значение последовательности отстаёт от другого на указанное в параметре step
количество шагов.
Последний элемент возвращённого массива будет равен либо значению параметра end
, либо предыдущему значению последовательности, в зависимости от значения параметра step
.
Если оба параметра — start
и end
— будут строками (string), а параметр step
— числом (int), то созданный массив будет последовательностью байтов, обычно латинских символов в кодировке ASCII.
Если хотя бы одно из значений параметров start
, end
, или step
будет числом с плавающей точкой (float), созданный массив будет последовательностью значений float.
В противном случае созданный массив будет последовательностью целых чисел (int).
step
будет равно 0
, будет выброшено исключение ValueError. start
, end
, или step
окажется недопустимым конечным числом, как его определяет функция is_finite(), будет выброшено исключение ValueError. step
будет отрицательным при создании возрастающей последовательности (т. е. $start <= $end
), будет выброшено исключение ValueError. start
или end
будет пустой строкой (''
), это приведёт к ошибке уровня E_WARNING
, а пустая строка будет интерпретирована как целое число 0
. start
или end
окажется нечисловой строкой размером более одного байта, будет сгенерирована ошибка уровня E_WARNING
. start
или end
окажется строкой, которая неявно приводится к целому числу (int) из-за того, что другое значение — число, возникнет ошибка уровня E_WARNING
. step
будет числом с плавающей точкой (float), а значение параметров start
и end
окажется нечисловой строкой, будет сгенерирована ошибка уровня E_WARNING
. Версия | Описание |
---|---|
8.3.0 | Если значения обоих параметров — start и end — окажутся строками, то теперь функция range() всегда будет создавать массив (array) байтов. Ранее, если один из символов в строке был числом, другие символы неявно приводились к числу (int). |
8.3.0 | Теперь появляется ошибка уровня E_WARNING , если значение хотя бы одного из параметров start или end оказывается строкой, которая неявно приводится к целому числу (int) из-за наличия в ней числовых символов. |
8.3.0 | Теперь появляется ошибка уровня E_WARNING , если значение хотя бы одного из параметров start или end оказывается нечисловой строкой с размером более одного байта. |
8.3.0 | Теперь появляется ошибка уровня E_WARNING , если значение хотя бы одного из параметров start или end оказывается пустой строкой. |
8.3.0 | Если значение параметра step окажется числом с плавающей точкой (float) без дробной части, оно будет интерпретировано как целое число (int). |
8.3.0 | Теперь выбрасывается исключение ValueError, если при создании восходящей последовательности значение параметра step оказывается отрицательным числом. |
8.3.0 | Теперь выбрасывается исключение ValueError, если значение параметра step не является допустимым конечным числом. |
8.3.0 | Теперь выбрасывается исключение TypeError, если значение хотя бы одного из параметров start или end окажется массивом (array), объектом (object) или ресурсом (resource). Ранее они неявно приводились к целому числу (int). |
Пример #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