Operator Precedence
Fait partie de la section Fondamentaux du Journey PHP de Coddy — leçon 20 sur 71.
Lorsqu'une expression contient plusieurs opérateurs, PHP suit un ordre spécifique appelé priorité des opérateurs. Tout comme en mathématiques, la multiplication et la division sont effectuées avant l'addition et la soustraction.
<?php
echo 5 + 3 * 2; // Affiche : 11, pas 16
?>PHP multiplie d'abord 3 × 2 (obtenant 6), puis ajoute 5. Si les opérateurs avaient une priorité égale, il calculerait de gauche à droite : 5 + 3 = 8, puis 8 × 2 = 16. Mais ce n'est pas comme ça que ça fonctionne.
Voici la précédence des opérateurs que vous avez appris, de la plus haute à la plus basse :
| Priorité | Opérateurs |
| Plus haute | ** (puissance) |
| Haute | * / % |
| Basse | + - |
Pour outrepasser l'ordre par défaut, utilisez des parenthèses. Les opérations à l'intérieur des parenthèses sont toujours évaluées en premier :
<?php
echo (5 + 3) * 2; // Affiche : 16
echo 2 ** 3 * 2; // Affiche : 16 (8 * 2)
echo 2 ** (3 * 2); // Affiche : 64 (2^6)
?>En cas de doute, utilisez des parenthèses pour rendre vos intentions claires. Cela rend votre code plus facile à lire et évite les résultats inattendus.
Défi
FacileLisez trois nombres depuis l'entrée : a, b, et c.
Calculez et affichez le résultat de l'expression suivante, en utilisant des parenthèses pour vous assurer que l'addition se produit avant la multiplication :
(a + b) * c ** 2
Cela signifie : d'abord additionnez a et b, puis multipliez cette somme par c élevé à la puissance de 2.
Exemple :
Si les entrées sont 2, 3, et 4, la sortie devrait être 80 parce que :
- D'abord, additionnez 2 + 3 = 5
- Ensuite, calculez 4 ** 2 = 16
- Enfin, multipliez 5 * 16 = 80
Aide-mémoire
PHP suit les règles de priorité des opérateurs lors de l'évaluation d'expressions avec plusieurs opérateurs :
| Priorité | Opérateurs |
| La plus haute | ** (puissance) |
| Haute | * / % |
| Basse | + - |
<?php
echo 5 + 3 * 2; // Affiche : 11 (multiplication d'abord)
?>Utilisez des parenthèses pour outrepasser l'ordre par défaut. Les opérations à l'intérieur des parenthèses sont évaluées en premier :
<?php
echo (5 + 3) * 2; // Affiche : 16
echo 2 ** 3 * 2; // Affiche : 16 (8 * 2)
echo 2 ** (3 * 2); // Affiche : 64 (2^6)
?>Essayez vous-même
<?php
// Lire l'entrée
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO : Écrivez votre code ci-dessous pour calculer (a + b) * c ** 2
// Afficher le résultat
echo $result;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators