(PHP 4, PHP 5, PHP 7, PHP 8)
range — Erstellt ein Array mit einem Bereich von Elementen
Erstellt ein Array mit einem Bereich von Elementen.
Wenn sowohl start
als auch
end
vom Typ string sind und
step
vom Typ int ist, ist das erzeugte
Array eine Folge von Bytes. Andernfalls ist das erzeugte Array eine Folge
von Zahlen.
Wenn der start
kleiner ist als
end
, ist die Folge aufsteigend, andernfalls ist sie
absteigend.
Gibt eine Folge von Elementen als Array zurück, beginnend mit
start
und endend mit end
,
wobei die einzelnen Werte der Folge einen Abstand von
step
voneinander haben.
Das letzte Element des zurückgegebenen Arrays ist in Abhängigkeit vom Wert
von step
entweder end
oder
das vorherige Element der Folge.
Wenn sowohl start
als auch end
vom Typ string sind und step
vom Typ
int ist, besteht das erzeugte Array aus einer Folge von Bytes,
in der Regel lateinische ASCII-Zeichen.
Wenn mindestens einer der Parameter start
,
end
oder step
vom Typ
float ist, ist das erzeugte Array eine Folge vom Typ
float.
Andernfalls ist das erzeugte Array eine Folge vom Typ int.
step
0
ist, wird ein
ValueError geworfen.
start
, end
oder
step
nicht is_finite() ist,
wird ein ValueError geworfen.
step
negativ ist, aber der erzeugte Bereich
größer wird (d. h. $start <= $end
), wird ein
ValueError geworfen.
start
oder end
die
leere Zeichenkette ''
ist, wird ein
E_WARNING
ausgegeben und die leere Zeichenkette wird
als 0
interpretiert.
start
oder end
eine
nicht-numerische Zeichenkette
mit mehr als einem Byte ist, wird ein E_WARNING
ausgegeben.
start
oder end
eine
Zeichenkette ist, die implizit in den Typ int umgewandelt
wird, weil der andere Begrenzungswert eine Zahl ist, wird ein
E_WARNING
ausgegeben.
step
vom Typ float ist, und
start
und end
nicht-numerische Zeichenketten
sind, wird ein E_WARNING
ausgegeben.
Version | Beschreibung |
---|---|
8.3.0 |
Wenn sowohl start als auch
end Zeichenketten sind, erzeugt
range() nun immer ein Array aus Bytes.
Zuvor wurde, wenn einer der Begrenzungswerte eine numerische
Zeichenkette war, der andere Begrenzungswert implizit in
int umgewandelt.
|
8.3.0 |
Wenn start oder end eine
Zeichenkette ist, die implizit in int umgewandelt wird,
weil der andere Begrenzungswert eine Zahl ist, wird nun ein
E_WARNING ausgegeben.
|
8.3.0 |
Wenn start oder end eine
nicht-numerische Zeichenkette mit mehr als einem Byte ist, wird nun ein
E_WARNING ausgegeben.
|
8.3.0 |
Wenn start oder end die
leere Zeichenkette ist, wird nun ein E_WARNING
ausgegeben.
|
8.3.0 |
Wenn step ein float ohne
Nachkommastelle ist, wird er als int interpretiert.
|
8.3.0 |
Wenn step negativ ist, wird nun ein
ValueError ausgelöst, wenn ein aufsteigender
Bereich erzeugt wird.
|
8.3.0 |
Wenn step nicht endlich ist, wird nun ein
ValueError geworfen.
|
8.3.0 |
Wenn start oder end ein
Array, Objekt oder eine Ressource
ist, wird nun ein TypeError geworfen; zuvor
wurden diese Werte implizit in int umgewandelt.
|
Beispiel #1 range()-Beispiele
<?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;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
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