(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