range

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

rangeCrée un tableau contenant un intervalle d'éléments

Description

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

Crée un tableau contenant un intervalle d'éléments.

Si à la fois start et end sont des string, et que step est de type int, le tableau produit sera une séquence d'octets. Sinon, le tableau produit sera une séquence de nombres.

La séquence est croissante si start est inférieur ou égal à end. Sinon, la séquence est décroissante.

Liste de paramètres

start

Première valeur de la séquence.

end

Dernière valeur possible de la séquence.

step

step indique de combien la séquence produite progresse entre les valeurs de la séquence.

step peut être négatif pour les séquences décroissantes.

Si step est un float sans partie fractionnaire, il est interprété comme un int.

Valeurs de retour

Retourne une séquence d'éléments sous forme d'un tableau array avec le premier élément étant start allant jusqu'à end, chaque valeur de la séquence étant séparée de step valeurs.

Le dernier élément du tableau retourné est soit end soit l'élément précédent de la séquence, en fonction de la valeur de step.

Si à la fois start et end sont des string, et que step est de type int le tableau produit sera une séquence d'octets, généralement des caractères ASCII latins.

Si au moins l'un des start, end ou step est de type float, le tableau produit sera une séquence de float.

Sinon, le tableau produit sera une séquence de int.

Erreurs / Exceptions

  • Si step est égal à 0, une ValueError est générée.
  • Si start, end, ou step ne sont pas is_finite(), une ValueError est générée.
  • Si step est négatif, mais la plage produite est croissante (c'est-à-dire $start <= $end), une ValueError est générée.
  • Si start ou end est la chaîne vide '', un E_WARNING est émis et la chaîne vide sera interprétée comme 0.
  • Si start ou end est une chaîne non-numérique avec plus d'un octet, un E_WARNING est émis.
  • Si start ou end est une chaîne qui est implicitement convertie en int parce que l'autre valeur de limite est un nombre, un E_WARNING est émis.
  • Si step est de type float, et que start et end sont des chaînes non-numériques, un E_WARNING est émis.

Historique

VersionDescription
8.3.0 Si à la fois start et end sont des chaînes, alors range() produira désormais systématiquement un tableau de string. Auparavant, si l'une des valeurs limites était une chaîne numérique, l'autre valeur limite était implicitement convertie en int.
8.3.0 Un E_WARNING est désormais émis si start ou end est une chaîne qui est implicitement convertie en int parce que l'autre valeur limite est un nombre.
8.3.0 Un E_WARNING est désormais émis si start ou end est une chaîne non-numérique avec plus d'un octet.
8.3.0 Un E_WARNING est désormais émis si start ou end est la chaîne vide.
8.3.0 Si step est de type float sans partie fractionnaire, il sera interprété comme un int.
8.3.0 Une ValueError est désormais générée si step est négatif lors de la production d'une plage croissante.
8.3.0 Une ValueError est désormais générée si step n'est pas fini.
8.3.0 Une TypeError est désormais générée si start ou end est un tableau, un objet, ou une ressource. Auparavant, elles étaient implicitement converties en int.

Exemples

Exemple #1 Exemple avec range()

<?php
echo implode(', ', range(0, 12)), PHP_EOL;

echo
implode(', ', range('a', 'i')), PHP_EOL;

echo
implode(', ', range('c', 'a')), PHP_EOL;

echo
implode(', ', range('A', 'z')), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

To Top