Un opérateur est quelque chose que vous alimentez avec une ou plusieurs valeurs
(ou expression, dans le jargon de programmation) qui retourne une autre valeur
(donc que la construction elle-même devient une expression). Donc, vous pouvez penser
aux fonctions ou constructions qui retournent une valeur (comme print) comme opérateur
et ceux qui retournent rien du tout (comme echo).
Il y a trois types d'opérateurs. Le premier, l'opérateur unaire, qui opère
sur une seule valeur, par exemple ! (l'opérateur de négation) ou ++ (l'opérateur
d'incrémentation). Le second groupe, les opérateurs binaires ; ce groupe
contient la plus part des opérateurs supportés par PHP qui sont listés
ci-dessous dans la section
"La précédence des opérateurs".
Le troisième groupe est le groupe des opérateurs de terminaison : ?:. Ils doivent être utilisés
pour choisir entre deux expressions dépendants d'une troisième, plutôt que
sélectionner deux phrases ou chemins d'exécution.
Les expressions ternaires environnantes avec des parenthèses est une idée très bonne.
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 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.
Tableau 15-1. Précédence des opérateurs
L'associativité de gauche signifie que l'expression est évaluée de gauche à droite,
l'associativité de droite, l'inverse.
Exemple 15-1. Associativité
<?php $a = 3 * 3 % 5; // (3 * 3) % 5 = 4 $a = true ? 0 : true ? 1 : 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
=, 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.