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, et non 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 ainsi que cela fonctionne.
Voici l'ordre de priorité, de la plus élevée à la plus basse, pour les opérateurs que vous avez appris :
| Priorité | Opérateurs |
| La plus élevée | ** (exponentiation) |
| Élevée | * / % |
| Basse | + - |
Pour modifier 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 clarifier vos intentions. Cela rend votre code plus facile à lire et évite des résultats inattendus.
Défi
FacileLisez trois nombres à partir de 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 s'effectue avant la multiplication :
(a + b) * c ** 2
Cela signifie : additionnez d'abord a et b, puis multipliez cette somme par c élevé à la puissance 2.
Exemple :
Si les entrées sont 2, 3 et 4, la sortie devrait être 80 car :
- D'abord, additionnez 2 + 3 = 5
- Ensuite, calculez 4 ** 2 = 16
- Enfin, multipliez 5 * 16 = 80
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