(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 Exemplos de 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;
?>
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