range

(PHP 4, PHP 5, PHP 7, PHP 8)

rangeErstellt ein Array mit einem Bereich von Elementen

Beschreibung

range(string|int|float$start, string|int|float$end, int|float$step = 1): array

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.

Parameter-Liste

start

Der erste Wert der Folge.

end

Der letzte mögliche Wert der Folge.

step

step gibt an, wie weit die einzelnen Werte der erzeugten Folge auseinander liegen.

step kann für absteigende Folgen negativ sein.

Wenn step ein float ohne Nachkommastelle ist, wird er als int interpretiert.

Rückgabewerte

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.

Fehler/Exceptions

  • Wenn step0 ist, wird ein ValueError geworfen.
  • Wenn start, end oder step nicht is_finite() ist, wird ein ValueError geworfen.
  • Wenn step negativ ist, aber der erzeugte Bereich größer wird (d. h. $start <= $end), wird ein ValueError geworfen.
  • Wenn start oder end die leere Zeichenkette '' ist, wird ein E_WARNING ausgegeben und die leere Zeichenkette wird als 0 interpretiert.
  • Wenn start oder end eine nicht-numerische Zeichenkette mit mehr als einem Byte ist, wird ein E_WARNING ausgegeben.
  • Wenn 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.
  • Wenn step vom Typ float ist, und start und end nicht-numerische Zeichenketten sind, wird ein E_WARNING ausgegeben.

Changelog

VersionBeschreibung
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.

Beispiele

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

Siehe auch

To Top