Az alapvető hozzárendelő operátor az "=". Talán elsőre azt hiszed, hogy ez az "egyenlő valamivel" jele. De nem. Valójában azt jelenti, hogy a bal oldali operandus [ami az egyenlőségjel bal oldalán áll] a jobb oldali kifejezést kapja értékül.
A hozzárendelő kifejezés értéke a bal oldalhoz rendelt érték. Vagyis a "$a = 3" értéke 3. Ez lehetőséget ad néhány trükkös dologra:
1 2 $a = ($b = 4) + 5; // $a most 9, és $b 4 3 |
Sőt, az alapvető hozzárendelő operátoron felül vannak "kombinált" operátorok is az összes kétoperandusú aritmetikai és stringoperátok számára, amik lehetővé teszik, hogy használjunk egy változót egy kifejezésben, majd rögtön be is állítsuk a változót a kifejezés értékére. Például:
1 2 3 $a = 3; 4 $a += 5; // $a-t 8-ra állítja, mintha $a = $a + 5;-öt írtunk volna 5 $b = "Csecs "; 6 $b .= "Emő"; // $b-t "Csecs Emő"-re állítja, egyenértékű: $b = $b . "Emő"; 7 8 |
A hozzárendelés az eredeti változót újba másolja (érték szerint), így az egyiken elvégzett változtatások a másikat nem érintik. Ezt néha fontos tudni, például ha mondjuk egy nagy tömböt kell másolni egy sokszor végrehajtott ciklus belsejében. A PHP4 támogatja paraméterek érték szerinti átadását a $var = &$othervar; szintaxissal, de ez PHP3-ban nem működik. A 'cím szerinti paraméterátadás' azt jelenti, hogy mindkét változó ugyanarra az adatra mutat, tehát semmi nem másolódik sehová [a változó címét kivéve...]