range

(PHP 4, PHP 5, PHP 7, PHP 8)

rangeСоздаёт массив, который содержит диапазон элементов

Описание

range(string|int|float $start, string|int|float $end, int|float $step = 1): array

Функция создаёт массив, который содержит диапазон элементов.

Функция создаёт массив последовательных байтов, если в параметры 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

Смотрите также