Operator Precedence
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 20 von 71.
Wenn ein Ausdruck mehrere Operatoren enthält, folgt PHP einer bestimmten Reihenfolge, die Operator-Rangfolge genannt wird. Genau wie in der Mathematik werden Multiplikation und Division vor Addition und Subtraktion ausgeführt.
<?php
echo 5 + 3 * 2; // Ausgabe: 11, nicht 16
?>PHP multipliziert zuerst 3 × 2 (ergibt 6) und addiert dann 5. Hätten die Operatoren die gleiche Priorität, würde von links nach rechts gerechnet: 5 + 3 = 8, dann 8 × 2 = 16. Aber so funktioniert es nicht.
Hier ist die Rangfolge von der höchsten zur niedrigsten für die Operatoren, die Sie gelernt haben:
| Priorität | Operatoren |
| Höchste | ** (Potenzierung) |
| Hoch | * / % |
| Niedrig | + - |
Um die Standardreihenfolge zu überschreiben, verwenden Sie Klammern. Operationen innerhalb von Klammern werden immer zuerst ausgewertet:
<?php
echo (5 + 3) * 2; // Ausgabe: 16
echo 2 ** 3 * 2; // Ausgabe: 16 (8 * 2)
echo 2 ** (3 * 2); // Ausgabe: 64 (2^6)
?>Im Zweifelsfall sollten Sie Klammern verwenden, um Ihre Absichten zu verdeutlichen. Dies macht Ihren Code leichter lesbar und verhindert unerwartete Ergebnisse.
Aufgabe
EinfachLies drei Zahlen aus der Eingabe: a, b und c.
Berechne und gib das Ergebnis des folgenden Ausdrucks aus, wobei Klammern verwendet werden, um sicherzustellen, dass die Addition vor der Multiplikation erfolgt:
(a + b) * c ** 2
Das bedeutet: Addiere zuerst a und b, und multipliziere dann diese Summe mit c hoch 2.
Beispiel:
Wenn die Eingaben 2, 3 und 4 sind, sollte die Ausgabe 80 sein, weil:
- Zuerst addiere 2 + 3 = 5
- Dann berechne 4 ** 2 = 16
- Schließlich multipliziere 5 * 16 = 80
Probier es selbst
<?php
// Eingabe lesen
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: Schreibe deinen Code unten, um (a + b) * c ** 2 zu berechnen
// Ergebnis ausgeben
echo $result;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
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