(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