(PHP 4 >= 4.1.0, PHP 5, PHP 7)
version_compare — Compare deux chaînes de version au format des versions PHP
version_compare() compare les deux versions de PHP standardisées.
version_compare() remplace dans un premier temps _, - et + par un point (.) dans les chaînes de version et insère aussi des points avant et après tout caractère non-numérique pour que, par exemple, '4.3.5RC1' devienne '4.3.5.RC.1'. Puis, elle compare les morceaux en allant de gauche à droite. Si une part contient des caractères alphabétiques, ils sont gérés dans l'ordre suivant : any string not found in this list < dev < alpha = a < beta = b < RC = rc < # < pl = p. De cette façon, il est possible de comparer non seulement des versions de différents niveaux, comme '4.1' et '4.1.2', mais aussi des versions de développement à la mode de PHP, à n'importe quel stade.
version1
Premier numéro de version.
version2
Second numéro de version.
operator
Si le troisième argument optionnel operator
est fourni, un test pour une relation particulière sera réalisée.
Les opérateurs possibles sont : <, lt,
<=, le, >,
gt, >=, ge,
==, =, eq,
!=, <>, ne
respectivement.
Ce paramètre est sensible à la casse, les valeurs doivent donc être en minuscules.
Par défaut, version_compare() retourne -1 si la première version est inférieure à la seconde, 0 si elles sont égales, et 1 si la seconde est inférieure à la première.
Lorsque l'on utilise le paramètre optionnel operator
,
la fonction retourne TRUE
si la relation est celle spécifiée par l'opérateur,
FALSE
sinon.
Les exemples ci-dessous utilisent la constante
PHP_VERSION
, sachant qu'elle contient la valeur
de la version PHP utilisée pour exécuter le code.
Exemple #1 Exemple avec version_compare()
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'J\'ai au moins la version 7.0.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'J\'ai au moins la version 5.3.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'J\'utilise PHP 5 ; ma version : ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'J\'utilise PHP 4 ; ma version : ' . PHP_VERSION . "\n";
}
?>
Note:
La constante
PHP_VERSION
contient la version courante de PHP.
Note:
Notez que les versions intermédiaires, comme 5.3.0-dev, sont considérées comme inférieures à leurs versions finales (telle que 5.3.0).
Note:
Les chaînes spéciales de version comme alpha et beta sont sensibles à la casse. Les chaînes de version issues de sources arbitraires qui n'adhère pas au standard PHP doivent être mises en minuscule en utilisant la fonction strtolower() avant d'appeler la fonction version_compare().