La pr�c�dence des op�rateurs

La priorit� des op�rateurs sp�cifie l'ordre dans lequel les valeurs doivent �tre analys�es. Par exemple, dans l'expression 1 + 5 * 3, le r�sultat est 16 et non 18, car la multiplication ("*") a une priorit� sup�rieure par rapport � l'addition ("+"). Des parenth�ses peuvent �tre utilis�es pour forcer la priorit�, si n�cessaire. Par exemple : (1 + 5) * 3 donnera 18. Si la priorit� d'op�rateur est �gale, l'associativit� de gauche � droite est utilis�e.

Le tableau suivant dresse une liste de la priorit� des diff�rents op�rateurs dans un ordre d�croissant de priorit�. Les op�rateurs sur une m�me ligne ont une priorit� �quivalente et, dans ce cas, leur association d�cide de l'ordre de leur �valuation.

Pr�c�dence des op�rateurs
Associativit� Op�rateurs Information additionnelle
non-associative clone new clone et new
gauche [ array()
non-associatif ++ -- incr�mentation/d�cr�mentation
non-associatif ~ - (int) (float) (string) (array) (object) (bool) @ types
non-associatif instanceof types
droite ! logique
gauche * / % arithm�tique
gauche + - . arithm�tique et cha�ne de caract�res
gauche << >> bitwise
non-associatif < <= > >= <> comparaison
non-associatif == != === !== comparaison
gauche & bitwise et r�f�rences
gauche ^ bitwise
gauche | bitwise
gauche && logique
gauche || logique
gauche ? : ternaire
droite = += -= *= /= .= %= &= |= ^= <<= >>= assignation
gauche and logique
gauche xor logique
gauche or logique
gauche , plusieurs utilisations

L'associativit� de gauche signifie que l'expression est �valu�e de gauche � droite, l'associativit� de droite, l'inverse.

Exemple #1 Associativit�

<?php
$a 
5// (3 * 3) % 5 = 4
$a true true 2// (true ? 0 : true) ? 1 : 2 = 2

$a 1;
$b 2;
$a $b += 3// $a = ($b += 3) -> $a = 5, $b = 5
?>

Utilisez les parenth�ses pour augmenter la lisibilit� du code.

Note: Bien que = soit prioritaire sur la plupart des op�rateurs, PHP va tout de m�me ex�cuter des expressions comme : if (!$a = foo()). Dans cette situation, le r�sultat de foo() sera plac� dans la variable $a.