Les variables en PHP¶
Déclaration simple :¶
<?php $variable = "une variable en PHP"; // Une autre variable : $Variable = 1000;
Existence de variables, la fonction isset() :¶
<?php $a = "une variable en PHP"; if(isset($a)) echo "la variable a existe"; unset($a); echo "la variable a a été supprimée ...";
Test de variables, la fonction empty() :¶
<?php $a = "une variable en PHP"; if (!empty($a)) echo " La variable existe et elle n\'est pas vide !";
Avertissement
La fonction empty() répond vrai si la variable n’existe pas et ceci sans faire aucun warning ! En outre, avant PHP 5.5, on ne peut pas l’utiliser sur autre chose que des variables (impossible d’appeller une fonction dans l’argument qu’on lui passe)
Test de variables en PHP 7 avec l’opérateur coalescent¶
L’opérateur Null coalescent ?? permet de simplifier certains tests d’existence de variables et d’alternatives, comme par exemple :
<?php // $a non initialisée $b = 143; echo $a ?? 3; // affiche 3 echo PHP_EOL; echo $a ?? $b ?? 7; // affiche 143 echo PHP_EOL;
Ce qui permet de limiter le recours à isset dans de nombreuses situations comme:
<?php // Récupère la valeur de $_GET['email'] et retourne 'nobody' // si elle n'existe pas. $mail = $_GET['email'] ?? 'nobody@null'; // Equivalent à: $mail = isset($_GET['email']) ? $_GET['email'] : 'nobody@null'; // Coalescing ?? peut être chainé : // On renvoie la première valeur définie parmi // $_GET['email'], $_POST['email'], et 'nobody@null.com'. $mail = $_GET['email'] ?? $_POST['email'] ?? 'nobody@null'; echo "$mail\n";
Portée des variables :¶
Par défaut, toutes les variables sont locales
Leur portée se réduit à la fonction ou au bloc de leur déclaration
Pour déclarer une variable globale, on peut utiliser le tableau $_GLOBALS[ ]
<?php $_GLOBALS['MaVar']="Bonjour"; ?>
Constantes :¶
<?php define("USER","TOTO"); echo USER; // Notez l'absence de $ ici