(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