(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
version_compare — Compare deux chaînes de version au format des versions PHP
$version1
, string $version2
, ?string $operator
= null
): int|boolversion_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 de PHP, à n'importe quel stade.
version1
Premier numéro de version.
version2
Second numéro de version.
operator
Un opérateur optionnel. 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 de 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\'ai au moins la version 5.0.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'J\'utilise encore 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
etbeta
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().