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, а stepint, то отриманий масив буде послідовністю байтів. В іншому випадку отриманий масив буде послідовністю чисел.

Послідовність буде висхідною, якщо значення start менше або рівне end. Інакше послідовність буде низхідною.

Параметри

start

Перше значення послідовності.

end

Останнє можливе значення послідовності.

step

step визначає крок між значеннями послідовності.

step може бути від'ємним для низхідних послідовностей.

Якщо параметр step має тип float і не має дробової частини, то він перетворюється в int.

Значення, що повертаються

Повертає послідовність значень у вигляді масиву (array) елементів від start до end, з кроком step.

Залежно від значення step, останнім елементом отриманого масиву є або значення end, або попередній член послідовності.

Якщо start і end мають тип string, а stepint, то отриманий масив буде послідовністю байтів, зазвичай це латинські символи 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

Прогляньте також