Menu
Coddy logo textTech

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 spezifischen Reihenfolge, die als Operatorpriorität bezeichnet wird. Genau wie in der Mathematik werden Multiplikation und Division vor Addition und Subtraktion ausgeführt.

<?php
echo 5 + 3 * 2; // Gibt aus: 11, nicht 16
?>

PHP multipliziert zuerst 3 × 2 (was 6 ergibt), dann addiert es 5. Wenn Operatoren gleiche Priorität hätten, würde es von links nach rechts rechnen: 5 + 3 = 8, dann 8 × 2 = 16. Aber so funktioniert es nicht.

Hier ist die Präzedenz von höchster bis niedrigster für die Operatoren, die du gelernt hast:

PrioritätOperatoren
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;  // Gibt aus: 16
echo 2 ** 3 * 2;   // Gibt aus: 16 (8 * 2)
echo 2 ** (3 * 2); // Gibt aus: 64 (2^6)
?>

Im Zweifel verwenden Sie Klammern, um Ihre Absichten klarzumachen. Das macht Ihren Code leichter lesbar und verhindert unerwartete Ergebnisse.

challenge icon

Aufgabe

Einfach

Lesen Sie drei Zahlen von der Eingabe: a, b und c.

Berechnen und drucken Sie das Ergebnis des folgenden Ausdrucks, indem Sie Klammern verwenden, um sicherzustellen, dass die Addition vor der Multiplikation erfolgt:

(a + b) * c ** 2

Das bedeutet: zuerst a und b addieren, dann diese Summe mit c hoch 2 multiplizieren.

Beispiel:

Wenn die Eingaben 2, 3 und 4 sind, sollte die Ausgabe 80 sein, weil:

  • Zuerst 2 + 3 = 5 addieren
  • Dann 4 ** 2 = 16 berechnen
  • Schließlich 5 * 16 = 80 multiplizieren

Spickzettel

PHP folgt Operatorpriorität-Regeln bei der Auswertung von Ausdrücken mit mehreren Operatoren:

PrioritätOperatoren
Höchste** (exponentiation)
Hoch* / %
Niedrig+ -
<?php
echo 5 + 3 * 2; // Outputs: 11 (multiplication first)
?>

Verwenden Sie Klammern, um die Standardreihenfolge zu überschreiben. Operationen innerhalb von Klammern werden zuerst ausgewertet:

<?php
echo (5 + 3) * 2;  // Outputs: 16
echo 2 ** 3 * 2;   // Outputs: 16 (8 * 2)
echo 2 ** (3 * 2); // Outputs: 64 (2^6)
?>

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

// Das Ergebnis ausgeben
echo $result;
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen