Essentiel

En PHP, les variables sont représentées par un signe dollar "$" suivi du nom de la variable. Le nom est sensible à la casse.

Un nom de variable valide commence par une lettre (A-Z, a-z, ou les octets de 128 à 255) ou par un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression réguliÚre, cela donne : ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Note: PHP ne prend pas en charge les noms de variables Unicode, cependant, certains encodages de caractÚres (comme UTF-8) encodent les caractÚres de maniÚre que tous les octets d'un caractÚre multi-octet soient dans la plage autorisée, ce qui en fait ainsi un nom de variable valide.

Note: $this est une variable spĂ©ciale, qui ne peut pas ĂȘtre assignĂ©e. Avant PHP 7.1.0, l'affectation indirecte (c.-Ă -d. en utilisant les variables variables) Ă©tait impossible.

Astuce

Jetez un oeil sur Guide de nommage de l'espace utilisateur.

Exemple #1 Noms de variables valides

<?php
$var
= 'Jean';
$Var = 'Paul';
echo
"$var, $Var"; // affiche "Jean, Paul"

$_4site = 'pas encore'; // valide : commence par un souligné
$tÀyte = 'mansikka'; // valide : 'À' est ASCII (étendu) 228.

Exemple #2 Noms de variables invalides

<?php
$4site = 'pas encore'; // invalide : commence par un nombre

PHP accepte une sĂ©quence de n'importe quels octets comme nom de variable. Les noms de variables qui ne respectent pas les rĂšgles de nommage mentionnĂ©es ci-dessus ne peuvent ĂȘtre accĂ©dĂ©s que dynamiquement Ă  l'exĂ©cution. Voir variables variables pour plus d'informations sur la façon d'y accĂ©der.

Exemple #3 Accéder à des noms de variables inhabituels

<?php
${'nom-invalide'} = 'bar';
$nom = 'nom-invalide';
echo ${
'nom-invalide'}, " ", $$nom;

L'exemple ci-dessus va afficher :

bar bar

Par défaut, les variables sont toujours assignées par valeur. C'est-à-dire, lorsqu'une expression est affectée à une variable, la valeur de l'expression est recopiée dans la variable. Cela signifie, par exemple, qu'aprÚs avoir assigné la valeur d'une variable à une autre, modifier l'une des variables n'aura pas d'effet sur l'autre. Pour plus de détails sur ce genre d'assignation, se reporter aux expressions.

PHP permet aussi d'assigner les valeurs aux variables par référence. Cela signifie que la nouvelle variable ne fait que référencer (en d'autres termes, "devient un alias de", ou encore "pointe sur") la variable originale. Les modifications de la nouvelle variable affecteront l'ancienne et vice versa.

Pour assigner par référence, il suffit d'ajouter un & (ET commercial) au début de la variable qui est assignée (la variable source). Dans l'exemple suivant, Mon nom est Pierre s'affichera deux fois :

<?php
$foo
= 'Pierre'; // Assigne la valeur 'Pierre' Ă  $foo
$bar = &$foo; // Référence $foo avec $bar.
$bar = "Mon nom est $bar"; // Modifie $bar...
echo $bar . PHP_EOL;
echo
$foo . PHP_EOL; // $foo est aussi modifiée

Une chose importante Ă  noter est que seules les variables peuvent ĂȘtre assignĂ©es par rĂ©fĂ©rence.

<?php
$original
= 25;
$ref1 = &$original; // assignation valide
$ref2 = &(24 * 7); // assignation invalide : référence une expression sans nom
<?php
// Noter l'absence de & indiquant un retour par référence dans la déclaration de la fonction.
// Autrement dit, la fonction ne retourne pas une rĂ©fĂ©rence, donc le rĂ©sultat ne peut pas ĂȘtre assignĂ© par rĂ©fĂ©rence.
function test()
{
$original = 25;
return
$original;
}

// Note : un avis est émis, mais la valeur sans référence est assignée
$result1 = &test(); // invalide car test() ne retourne pas une variable par référence.
var_dump($result1);

// Cette fonction est définie comme retournant une référence, mais ne retourne pas une variable
function &test2()
{
return
26; // invalide car la valeur retournée n'est pas une référence à une variable.
}

// Note : la valeur sans référence est assignée
$result2 = &test2();
var_dump($result2);

Il n'est pas nĂ©cessaire de dĂ©clarer des variables en PHP, cependant, c'est une trĂšs bonne pratique. AccĂ©der Ă  une variable non dĂ©finie entraĂźnera un E_WARNING (avant PHP 8.0.0, E_NOTICE). Une variable non dĂ©finie a une valeur par dĂ©faut de null. La construction de langage isset() peut ĂȘtre utilisĂ©e pour dĂ©tecter si une variable a dĂ©jĂ  Ă©tĂ© initialisĂ©e.

Exemple #4 Valeur par défaut d'une variable non initialisée

<?php
// Une variable non initialisée et non référencée (pas de contexte d'utilisation).
var_dump($unset_var);

L'exemple ci-dessus va afficher :

Warning: Undefined variable $unset_var in ...
NULL

PHP permet l'autovivification de tableaux (création automatique de nouveaux tableaux) à partir d'une variable non définie. Ajouter un élément à une variable non définie créera un nouveau tableau et ne générera pas d'avertissement.

Exemple #5 Autovivification d'un tableau à partir d'une variable non définie

<?php
$unset_array
[] = 'valeur'; // Ne génÚre pas d'avertissement.
var_dump($unset_array);
Avertissement

Compter sur la valeur par dĂ©faut d'une variable non initialisĂ©e est problĂ©matique lorsqu'un fichier inclus dans un autre utilise le mĂȘme nom de variable.

Une variable peut ĂȘtre dĂ©truite en utilisant la construction de langage unset().

Pour plus d'informations sur les fonctions liées aux variables, consulter la Référence des fonctions sur les variables.

add a note

User Contributed Notes

There are no user contributed notes for this page.