(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