Les opérateurs d'affectation
L'opérateur d'affectation le plus simple est le signe "=".
Le premier réflexe est de penser que ce signe veut dire
"égal à". Ce n'est pas le cas. Il signifie que
l'opérande de gauche se voit affecter la valeur de
l'expression qui est à droite du signe égal.
La valeur d'une expression d'affectation est la valeur
affectée. Par exemple, la valeur de l'expression
'$a = 3
' est la valeur 3. Cela permet d'utiliser
des astuces telles que :
En plus du simple opérateur d'affectation, il existe des
"opérateurs combinés" pour tous les opérateurs
arithmétiques,
l'union de tableaux et pour les opérateurs sur les chaînes de caractères.
Cela permet d'utiliser la valeur d'une variable dans une expression et
d'affecter le résultat de cette expression à cette variable.
Par exemple :
On peut noter que l'affectation copie le contenu de la variable originale
dans la nouvelle variable (affectation par valeur), ce qui fait que les
changements de valeur d'une variable ne modifieront pas la valeur de
l'autre. Cela peut se révéler important lors de la copie d'un grand tableau
durant une boucle.
Une exception au comportement d'affectation par valeur en PHP est le type
object, ceux-ci sont affectés par référence.
La copie d'objet doit être explicitement demandée grâce au mot-clé
clone.
Affectation par référence
L'affectation par référence est aussi supportée, au moyen de la syntaxe
"$var = &$othervar;". L'affectation par
référence signifie que les deux variables pointent vers le même conteneur de
donnée, rien n'est copié nulle part.
Exemple #1 Affectation par référence
<?php
$a = 3;
$b = &$a; // $b est une référence à $a
print "$a\n"; // affiche 3
print "$b\n"; // affiche 3
$a = 4; // change $a
print "$a\n"; // affiche 4
print "$b\n"; // affiche 4 aussi, car $b est une référence à $a, qui a été
// changée
?>
L'opérateur new
retourne une référence automatiquement, de ce fait, assigner le résultat de
new par référence est une erreur
Plus d'informations sur les références et leurs utilisations possibles peuvent être
trouvées dans la section du manuel Les références
expliquées.
Les opérateurs d'affectation arithmétiques
Opérateurs d'affectation bits à bits
Autres opérateurs d'affectation