Articles

Le mois de la fonction PHP : comparaison de versions

  • Ecrit par Rodolphe Eveilleau
  • jeudi 19 avril 2007
Image pour le titre du contenu

This document is also available in English en 


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&eacute;ale pour notre application.';
        break;
        case '-1':
            echo 'Votre version de PHP est sup&eacute;rieure &agrave; celle requise.';
        break;
        case '+1':
            echo 'Votre version de PHP doit &ecirc;tre mise &agrave; 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&eacute;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&eacute;ale pour notre application.';
        break;
        case '-1':
            echo 'Votre version de PHP est sup&eacute;rieure &agrave; celle requise.';
        break;
        case '+1':
            echo 'Votre version de PHP doit &ecirc;tre mise &agrave; jour pour continuer.';
        break;
    }
 
 
?>

version_compare() permet d'émuler un opérateur type <=>
Exemple n°3 :
<?php
 
 
// emulation d'un op&eacute;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

< Précédent   Suivant >

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter