(PHP 4 >= 4.1.0, PHP 5)
version_compare — Compare deux chaînes de version au format des versions PHP
version_compare() compare les deux versions de PHP standardisées. Cette fonction est pratique pour les programmes qui doivent vérifier la version de PHP qui les fait tourner.
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'. Ensuite, elle découpe les résultats, similairement à explode('.', $ver). 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 troisième argument optionnel operator
est spécifié, il est possible de tester une relation particulière.
Les opérateurs possibles sont :
<,
lt, <=,
le, >,
gt, >=,
ge, ==,
=, eq,
!=, <>,
ne.
Ce paramètre est sensible à la casse, aussi les valeurs doivent être en minuscule.
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, '6.0.0') >= 0) {
echo 'J\'ai au moins la version 6.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().