Les opérateurs d'assignation

L' opérateur d'assignation 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 'assignation est la valeur assignée . Par exemple , la valeur de l' expression '$a = 3 ' est la valeur 3 . Cela permet d ' utiliser des astuces telles que :

 
?php

 
$a

 
=

 
(

 
$b

 
=

 
4

 
)

 
+

 
5

 
;

 
/

 
/

 
$a

 
est

 
maintenant

 
eacute;gal

 
agrave

 
;

 
9

 
,

 
et

 
$b

 
vaut

 
4

 
.

 
?





En plus du simple opérateur d' assignation , il existe des "opérateurs combinés " pour tous les opérateurs arithmétiques 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 :

 
?php

 
$a

 
=

 
3

 
;

 
$a

 
+=

 
5

 
;

 
/

 
/

 
affecte

 
la

 
valeur

 
8

 
agrave

 
;

 
la

 
variable

 
$a

 
.

 
/

 
/

 
correspond

 
agrave

 
;

 
l'instruction

 
'$a

 
=

 
$a

 
+

 
5')

 
;

 
$b

 
=

 
"Bonjour

 
"

 
;

 
$b

 
.=

 
"

 
tout

 
le

 
monde

 
!"

 
;

 
/

 
/

 
affecte

 
la

 
valeur

 
"Bonjour

 
tout

 
le

 
monde

 
!

 
"

 
agrave

 
;

 
/

 
/

 
la

 
variable

 
$b

 
/

 
/

 
identique

 
agrave

 
;

 
$b

 
=

 
$b

 
.

 
"

 
tout

 
le

 
monde

 
!"

 
;

 
?





On peut noter que l' assignation copie le contenu de la variable originale dans la nouvelle variable (assignation par valeur) , ce qui fait que les changements de valeur d'une variable ne modifieront pas la valeur de l 'autre . Cela peut se revéler important lors de la copie d ' un grand tableau durant une boucle . PHP 4 supporte aussi l' assignation par référence , en utilisant la syntaxe $var = $othervar ; , mais ce n'était pas possible en PHP 3 . 'L'assignation par référence ' signifie que les deux variables contiennent les mêmes données , et que la modification de l'une affecte l 'autre . D ' un autre côté , la recopie est très rapide .