Operatorrangfolge
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 als Operatorpräzedenz bezeichnet 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 (und erhält 6) und addiert dann 5. Wenn Operatoren die gleiche Priorität hätten, würde es von links nach rechts berechnen: 5 + 3 = 8, dann 8 × 2 = 16. Aber so funktioniert es nicht.
Hier ist die Rangfolge von der höchsten bis zur niedrigsten Priorität für die Operatoren, die du kennengelernt hast:
| Priorität | Operatoren |
| Höchste | ** (Exponentiation) |
| Hoch | * / % |
| Niedrig | + - |
Um die standardmäßige Reihenfolge zu überschreiben, verwende 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)
?>Wenn du Zweifel hast, verwende Klammern, um deine Absichten deutlich zu machen. Dadurch wird dein Code leichter lesbar und unerwartete Ergebnisse werden verhindert.
Aufgabe
EinfachLies drei Zahlen aus der Eingabe: a, b und c.
Berechne und gib das Ergebnis des folgenden Ausdrucks aus. Verwende Klammern, um sicherzustellen, dass die Addition vor der Multiplikation erfolgt:
(a + b) * c ** 2
Das bedeutet: Addiere zuerst a und b und multipliziere diese Summe dann mit c hoch 2.
Beispiel:
Wenn die Eingaben 2, 3 und 4 lauten, sollte die Ausgabe 80 sein, denn:
- Addiere zuerst 2 + 3 = 5
- Berechne dann 4 ** 2 = 16
- Multipliziere schließlich 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 darunter, um (a + b) * c ** 2 zu berechnen
// Das 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
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler