(PHP 4, PHP 5, PHP 7, PHP 8)
range — Cria um array contendo uma faixa de elementos
Cria um array contendo uma faixa de elementos.
Se ambos start
e end
forem strings, e step
é int, o array produzido será uma sequência de bytes. Em outros casos, o array produzido será uma sequência de números.
A sequência é crescente se start
é menor ou igual a end
. Em outros casos, a sequência é decrescente.
Retorna uma sequência de elementos como um array onde o primeiro elemento é start
progredindo a até end
, com cada valor da sequência separados por step
valores.
O último elemento do array retornado pode ser end
ou um valor anterior da sequência, a depender do valor de step
.
Se ambos start
e end
são strings, e step
é int, o array produzido será uma sequẽncia de bytes, geralmente as letras latinas no padrão ASCII.
Se start
, end
, ou step
forem float, o array produzido será uma sequẽncia de floats.
Em outros casos, o array produzido será uma sequência de int.
step
é 0
, um erro ValueError é lançado. start
, end
, ou step
não for is_finite(), um erro ValueError é lançado. step
é negativo, mas o array produzido é crescente ($start <= $end
), um erro ValueError é lançado. start
ou end
é um string vazia ''
, um aviso E_WARNING
é emitido e a string vazia é interpretada como 0
. start
ou end
forem uma string não numérica com mais de um byte, um aviso E_WARNING
é emitido. start
ou end
é uma string que pode ser implicitamente convertida para um int, um aviso E_WARNING
é emitido. step
é um float, e start
e end
forem uma string não numérica, um aviso E_WARNING
é emitido. Versão | Descrição |
---|---|
8.3.0 | Se ambos start e end forem strings então range() nem sempre produzirá um array de bytes. Anteriormente, se um dos valores limite for uma string numérica, então o outro valor string é implicitamente convertido para um int. |
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string implicitamente conversível para int se quaisquer valores limite é interpretado como um número. |
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string não numérica com mais de um byte. |
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string vazia. |
8.3.0 | Se step é um float sem parte fracionária, ele será interpretado como um int. |
8.3.0 | Um erro ValueError agora é lançado se step é negativo quando da produção de um array crescente. |
8.3.0 | Um erro ValueError agora é lançado se step não for finito. |
8.3.0 | Um erro TypeError agora é lançado se start ou end é um array, object ou resource. Anteriormente eles eram implicitamente convertidos para int. |
Exemplo #1 range() examples
<?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;
?>
O exemplo acima produzirá:
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