Articles
Le mois de la fonction PHP : comparaison de versions
- Ecrit par Rodolphe Eveilleau
- jeudi 19 avril 2007
This document is also available in English
Lorsque l'on développe une application qui a pour but d'être diffusée et hébergée sur différents serveurs, il est primordial de savoir si le serveur qui héberge votre application à la bonne version de PHP.
Pour nous faciliter le travail PHP met une fonction à notre disposition : version_compare(). Couplé avec la fonction phpversion() cela nous permettra déjà de faire un premier test de compatibilité.
Exemple n°1 :
<?php /** * Version de PHP requise par votre application */ define('MY_PHP_VERSION', '5.2.1'); switch (version_compare(MY_PHP_VERSION, <a href="http://www.php.net/phpversion">phpversion()</a>)) { case '0': echo 'Votre version de PHP est idéale pour notre application.'; break; case '-1': echo 'Votre version de PHP est supérieure à celle requise.'; break; case '+1': echo 'Votre version de PHP doit être mise à jour pour continuer.'; break; } ?>
La fonction phpversion() sans argument se contente de retourner la valeur de la constante PHP_VERSION. Sur certains serveur la valeur de cette constante n'est pas idéale pour comparer correctement les versions de PHP.
Exemple n°2 :
<?php /** * Version de PHP requise par votre application */ define('MY_PHP_VERSION', '5.2.1'); /** * PHP_VERSION = 5.1.6-pl6-gentoo * On doit donc simplifiée celle-ci pour obtenir 5.1.6 */ define('PHP_VERSION_SIMPLE', substr(PHP_VERSION, 0, 5)); /** * Maintenant on peut comparer correctement */ switch (version_compare(MY_PHP_VERSION, PHP_VERSION_SIMPLE)) { case '0': echo 'Votre version de PHP est idéale pour notre application.'; break; case '-1': echo 'Votre version de PHP est supérieure à celle requise.'; break; case '+1': echo 'Votre version de PHP doit être mise à jour pour continuer.'; break; } ?>
version_compare() permet d'émuler un opérateur type <=>
Exemple n°3 :
<?php // emulation d'un opérateur <=> $a = 1; $b = 2; var_dump(version_compare($a, $b)); var_dump(version_compare($b, $a)); /** * int(-1) * int(1) */ ?>
Attention cette fonction est disponible depuis PHP 4.0.7. Donc si vous souhaitez comparer les versions de PHP antérieurs à PHP4. Vous devez développer votre propre fonction.
A mémoriser
- version_compare() est disponible depuis PHP 4.
- version_compare() prend un troisième paramètre qui est un opérateur : la fonction retournera alors directement TRUE ou FALSE.
- version_compare() peut être utilisée pour comparer des versions de programmes autres que PHP.
- version_compare() sait gérer les extensions type RC, dev, alpha, mais pas gamma.
- version_compare() permet de comparer des adresses IP.
| < Précédent | Suivant > |
|---|
Commentaires
Vous pouvez ajouter votre commentaire! |
Vous devez vous connecter pour commenter


