(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
.
На значение последнего элемента возвращаемого массива влияет параметр step
:
последовательность завершается либо значением end
,
либо значением, которое предшествует выходу за пределы диапазона.
Функция создаст массив последовательных байтов,
если в параметры start
и end
передали значения с типом string,
а в параметр step
значение с типом int.
Функцию большей частью вызывают, чтобы получить последовательность латинских ASCII-символов.
Функция вернёт массив последовательных значений float,
если хотя бы в один параметр start
, end
,
или step
передали значение 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
.
E_WARNING
,
если в параметр step
передали значение float,
а в параметры start
и end
нечисловую строку.
Версия | Описание |
---|---|
8.3.0 |
Функция range() теперь создаёт массив (array) байтов,
если в оба параметра start и end
передали строки. Раньше при передаче числовой строки хотя бы в одном граничном значении
другое граничное значение неявно приводились к типу 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