Formation PHP les variables, tutoriel & guide de travaux pratiques en pdf.
Travailler avec des variables
Déclarer une variable
Une variable commence par un dollar « $ » suivi d’un nom de variable. Les variables ne sont pas typées au moment de leur création. Attention PHP est sensible à la casse : var et Var ne sont pas les mêmes variables ! Voici les règles à respecter :
• Une variable peut commencer par une lettre
• Une variable peut commencer par un souligné (underscore) « _ »
• Une variable ne doit pas commencer par un chiffre. // Déclaration et règles $var=1; // $var est à 1 $Var=2; // $ Var est à 2 $_toto=’Salut’; // Ok $3petitscochons=5; // Invalide : commence par un chiffre Leur type dépend de leur valeur et de leur contexte d’utilisation. Mais on peut forcer (cast) ponctuellement une variable à un type de données, ce qui s’appelle le transtypage. De même comme le type de variable peut changer en fonction de son utilisation ou du contexte, PHP effectue automatiquement un transtypage, ce qui peut parfois fournir des résultats surprenants. On affecte une valeur à une variable avec le signe égal « = » avec ou sans espace avant ou après. // Déclaration et transtypage $var=’2′; // Une chaîne 2 $var+=1; // $var est maintenant un entier 3 $var=$var+0.3; // $var est maintenant un réel de type double 3.3 $var=5 + « 3 petits cochons »; // $var est un entier qui vaut 8 Par défaut les variables sont assignées par valeur : la valeur assignée à la variable est recopiée dans la variable. PHP peut aussi travailler par référence. Une variable peut donc référencer une autre variable. On dit alors que la variable devient un alias, ou pointe sur une autre variable. On assigne par référence en utilisant le signe « & » devant la variable assignée $var=2; $ref=&$var; // $ref devient une référence de $var echo $ref; // affiche 2 $var=3; echo $ref; // affiche 3 $ref=4; echo $var; // affiche 4 Attention à la valeur constante NULL insensible à la casse. Affecter une valeur NULL à une variable signifie ne pas puis affecter de valeur.
Portée des variables
La portée d’une variable dépend du contexte. Une variable déclarée dans un script et hors d’une fonction est globale mais par défaut sa portée est limitée au script courant, ainsi qu’au code éventuellement inclus (include, require) et n’est pas accessible dans les fonctions ou d’autres scripts.
S. ROHAUT Cours Programmation PHP Page 13/93
$a=1; // globale par défaut function foo() { echo $a; // c’est une variable locale à la fonction : n’affiche rien } Pour accéder à une variable globale dans une fonction, il faut utiliser le mot-clé global. $a=1; // globale par défaut $b=2; // idem function foo() { global $a,$b; // on récupère les variables globales $b=$a+$b; } echo $b; // affiche 3 PHP accepte les variables statiques. Comme en C une variable statique ne perd pas sa valeur quand on sort d’une fonction. function test_static() { static $a=0; echo $a; // +1 à chaque passage dans la fonction $a++; }
Variables prédéfinies
PHP dispose d’un grand nombre de variables prédéfinies. Ces variables sont généralement de type scalaires ou des tableaux. Elles sont souvent de type superglobales, c’est à dire accessible depuis n’importe où sans notion de portée. Voici quelques tableaux prédéfinis (voir au point Tableaux pour comprendre leur utilisation).
• $_GLOBALS : tableau des variables globales. La clé est le nom de la variable. • $_SERVER : variables fournies par le serveur web, par exemple ‘SERVER_NAME’ • $_GET : variables fournies par HTTP par la méthode GET (formulaires) • $_POST : idem mais pour la méthode POST • $_COOKIE : les variables fournies par un cookie • $_FILES : variables sur le téléchargement d’un fichier (upload) • $_ENV : accès aux variables d’environnement du serveur • $_SESSION : les variables de session (voir cours sur les sessions).