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 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.
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.