range
(PHP 4, PHP 5, PHP 7, PHP 8)
range — Cria um array contendo uma faixa de elementos
Descrição
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.
Parâmetros
Valor Retornado
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.
Erros/Exceções
-
Se
step
é0
, um erro ValueError é lançado. -
se
start
,end
, oustep
não for is_finite(), um erro ValueError é lançado. -
Se
step
é negativo, mas o array produzido é crescente ($start <= $end
), um erro ValueError é lançado. -
Se
start
ouend
é um string vazia''
, um avisoE_WARNING
é emitido e a string vazia é interpretada como0
. -
Se
start
ouend
forem uma string não numérica com mais de um byte, um avisoE_WARNING
é emitido. -
Se
start
ouend
é uma string que pode ser implicitamente convertida para um int, um avisoE_WARNING
é emitido. -
Se
step
é um float, estart
eend
forem uma string não numérica, um avisoE_WARNING
é emitido.
Registro de Alterações
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.
|
Exemplos
Example #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