PHP kézikönyv
Előző
Következő
Az operátorok precedenciája azt határozza meg, hogy milyen "szorosan" köt össze két kifejezést.
Például az 1 + 5 * 3 kifejezésben, a kifejezés értéke 16, és nem 18, mert a szorzás operátorának, a ("*")-nak nagyobb precedenciája van, mint az összeadásénak ("+").
Zárójelek segítségével tetszőleges precedenciát lehet felállítani egy kifejezésen belül, ha szükséges.
Például a (1 + 5) * 3 eredménye 18 lesz.
[Az asszociativitás talán megér egy kis magyarázatot.
Ez azt határozza meg, hogy az adott szinten levő operátorok egymás utáni, zárójel nélküli használatát hogyan értelmezi a fordító.
Egy példán keresztül talán érthetőbbé válik:
1-2+3 értelmezhető (1-2)+3-nak (= 2), vagy 1 -(2+3)-nak (= -4).
Az előbbi kiértékelés, amely balról jobbra asszociatív, a helyes ebben az esetben.
A második kiértékelés pedig jobbról balra asszociatív - ilyen lenne például a hatványozás, amely nincs a nyelvben implementálva (erre szolgál pow()).
Ha a ** lenne a hatványozás, akkor a 2**3**2 helyesen 2 a 9-en = 512 lenne.
Vannak nem köthető (nem asszociatív) operátorok is, ilyenek az összehasonlító operátorok.
A PHP-ban tehát nem értelmes a 2 $x 4 kifejezés.]
Az alábbi táblázat az operátorokat precedenciájuk szerint növekvő sorrendben tartalmazza.
Táblázat 11-1.
Operátorok precedenciája
asszociativitás
operátorok
balról jobbra
balról jobbra
balról jobbra
balról jobbra
jobbról balra
balról jobbra
balról jobbra
balról jobbra
balról jobbra
balról jobbra
balról jobbra
balról jobbra
nem köthető
nem köthető
balról jobbra
balról jobbra
balról jobbra
jobbról balra
jobbról balra
[]
nem köthető
Előző
Tartalom
Következő
Kifejezések
Fel
Aritmetikai operátorok