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 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ä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;  // 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.

challenge icon

Aufgabe

Einfach

Lies 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;
?>
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