Home           
Les variables en PHP
 

<< Principe de base du PHP   Les structures de contrôle >>

Nous allons voir ici comment utiliser les variables en PHP.

Les types

Les variables en PHP, contrairement aux langages comme le C ou le Java, ne sont pas typées. Une variable peut aussi bien contenir des chiffres que des caractères. PHP supporte quatre types scalaires :
booléen0,1 ou TRUE/FALSE
entier 0, 1,2, -5
nombre à virgule flottante0.12345 , -5.65, 2.01
chaîne de caractères"une chaîne","toto"

PHP supporte deux types composés : les tableaux et les objets.

Ce sont les types les plus fréquemment utilisés en PHP.

Pour savoir de quel type est une variable, il est possible d'utiliser la fonction gettype().

Les variables

Le nommage des variables en PHP suit les mêmes règles de nommage que les autres entités PHP. Elles doivent commencer par un '$' suivi d'un tiret bas '_' ou d'un caractère ASCII dont le code est compris entre 128 et 255.
PHP est sensible à la casse.

$var=1; //un entier
$Var="toto"; //une chaine
$aigüe = "pas obtus"; echo "$var <br>\n";
echo "$Var,$aigüe <br>\n";

echo gettype($var)." <br>\n";
echo gettype($Var)." <br>\n";

Pour voir le résultat, cliquez-ici.

La fonction echo sera expliquée plus tard. Mais on peut d'ores et déjà voir son utilité.

Variables prédéfinies

Il existe des variables prédéfinies. Ces variables commencent par des préfixes comme $_GET. Ces variables sont internes à PHP. Elles ont chacune une fonction propre. Nous verrons au fur et à mesure comment se servir de ces variables. Mais voici un aperçu de ces variables (merci php.net) :

$GLOBALS :
   Contient une référence sur chaque variable qui est en fait disponible dans l'environnement d'exécution global. Les clés de ce tableau sont les noms des variables globales. $GLOBALS existe depuis PHP 3.

$_SERVER :
   Les variables fournies par le serveur web, ou bien directement liées à l'environnement d'exécution du script courant. C'est la nouvelle version de l'ancienne variable $HTTP_SERVER_VARS, qui est maintenant obsolète, mais toujours là.

$_GET :
   Les variables fournies au script via la chaîne de requête URL. C'est la nouvelle version de l'ancienne variable $HTTP_GET_VARS qui est maintenant obsolète, mais toujours là.

$_POST :
   Les variables fournies par le protocole HTTP en méthode POST. C'est la nouvelle version de l'ancienne variable $HTTP_POST_VARS qui est maintenant obsolète, mais toujours là.

$_COOKIE :
   Les variables fournies par le protocole HTTP, dans les cookies. C'est la nouvelle version de l'ancienne variable $HTTP_COOKIE_VARS qui est maintenant obsolète, mais toujours là.

$_FILES :
   Les variables fournies par le protocole HTTP, suite à un téléchargement de fichier. C'est la nouvelle version de l'ancienne variable $HTTP_POST_FILES qui est maintenant obsolète, mais toujours là.

$_ENV :
   Les variables fournies par l'environnement. C'est la nouvelle version de l'ancienne variable $HTTP_ENV_VARS qui est maintenant obsolète, mais toujours là.

$_REQUEST :
   Les variables fournies au script par n'importe quel mécanisme d'entrée et qui ne doit recevoir une confiance limitée. Note : lorsque vous exécutez un script en ligne de commande, cette variable ne va pas inclure les variables argv et argc. Elles seront présentes dans la variable $_SERVER. La présence et la valeur des entrées de ce tableau sont réglés par la directive variables_order. Ce tableau n'est l'évolution d'aucune variable d'avant PHP 4.1.0.

$_SESSION :
   Les variables qui sont en fait enregistrées dans la session attachée au script. C'est la nouvelle version de l'ancienne variable $HTTP_SESSION_VARS.

Portées des variables

Les variables ont une portée locale. C'est à dire qu'une variable déclarée dans un fonction A n'est pas visible dans B qui elle aussi est appelée par A.
Il est cependant possible d'utiliser le mot clé global pour utiliser des variables définies en dehors de la fonction.

<?
$a = 1;
$b = 2;

function somme1()
{
    echo $a + $b."<br>\n";
}

function somme2()
{
    global $a,$b;
    echo $a + $b."<br>\n";
}

function somme3()
{
    echo $GLOBALS['a'] + $GLOBALS['b']."<br>\n";
}

somme1();// affiche 0
somme2();// affiche 3
somme3();// affiche 3
?>

Pour voir le résultat, cliquez-ici.

Il est aussi possible d'utiliser la mot clé static pour déclarer des variables statiques. Ces variables sont initialisées la première fois que l'on rentre dans la fonction. Ensuite c'est la même variable qui est utilisée. C'est à dire que la variable reste locale à la fonction qui la crée. La variable est initialisée au premier appel de la fonction. Ensuite, elle garde toujours sa dernière valeur à chaque appel de la fonction. Ainsi, on peut incrémenter un compteur sans réinitialiser sa valeur à chaque de l'appel de la fonction d'incrémentation.

<?
function statique()
{
    static $i=0; //initialisation au premier appel de la fonction
    echo $i ."<br>\n";
    $i++;
}

for($j=0; $j<10;$j++)
{
statique();
}
?>

Pour voir le résultat, cliquez-ici.

Les variables dynamiques

Avec PHP, il est possible de stocker le nom de variables dans des variables.

Il est ainsi possible de créer des noms de variables dynamiquement et à volonté (en fonction du contenu de la Base de Données, par exemple). L'intérêt est par exemple des variables de même préfixe et numérotées au niveau du suffixe (var1, var2, var3...).

<? $var = 'autre_variable';
echo $var."<br>\n";
$$var = 'autre chaine';

echo $var."<br>\n";
echo $$var."<br>\n";

$autre_variable = 'une chaine';

echo $$var."<br>\n";
echo $autre_variable."<br>\n";
?>

Pour voir le résultat, cliquez-ici.

Nous avons vu les bases sur les variables et les types de bases en PHP.

 

<< Principe de base du PHP   Les structures de contrôle >>
  eXTReMe Tracker