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 количество шагов.

Последний элемент возвращённого массива будет равен либо значению параметра 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

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

To Top