Hauptmenü

Untermenü

PHP - Grundlagen - Operatoren - Rangfolge

1. Grundlagen

Bei PHP und (ich glaube) allen anderen Programmiersprachen gibt es eine feste Reihenfolge, bei der Art und Weise, wie Operatoren abgearbeitet werden. Daraus ergeben sich natürlich ein paar Schlussfolgerungen. Zuerst mal eine Übersicht über die Rangfolge.

Operatoren
1. ++ --    
2. * / %  
3. + - -  
4. = += -= .=

Um euch nicht völlig zu überfordern, gehe ich hier nur auf die wichtigsten Operatoren ein. Psst. Einige habe ich euch eh schon unterschlagen, da man sie eigentlich (fast) nie braucht. Außerdem gibt es bei den Vergleichs- und Logischen Operatoren noch ein paar Unterschiede.

2. Rechenregeln

Hier gilt das alte Prinzip, Punkt-Rechnung geht vor Strich-Rechnung. Also Mal und Geteilt kommen vor Plus und Minus. Wer das nicht begriffen hat, ist hier fehl am Platze und sollte sich besser da aufhalten. Wenn man gezielt Additionen und Subtraktionen zuerst ausführen möchte, so arbeitet man mit Klammern.


<?php
  $a 50;
  $b 30;
  $c 10;
  $rechnen $a $b $c;
  // Ergibt 1510
  $rechnen $a * ($b $c);
  // Ergibt 2000
?>

3. Inkrement- und Dekrementoperatoren

Jetzt komme ich zu dem Unterschied zwischen beiden Varianten. Denn hier geht es um den Unterschied bei der Verarbeitung. Dazu ein kleines Beispiel.


<?php
  $a 1;
  echo $a++.'<br>';
  echo $a.'<br>';
?>

Euch fällt beim Ausprobieren sofort auf, dass zuerst eine 1 und dann erst eine 2 ausgegeben werden. Das liegt, wie ich schon sagte, in der Natur der Post-Inkrement/Dekrement-Operatoren. Denn die geben zuerst den Wert zurück und erhöhen ihn danach. Darum wird auch die 2 erst beim zweiten echo ausgegeben.

Dagegen arbeiten Prä-Inkrement/Dekrement-Operatoren anders. Die erhöhen zuerst den Wert und geben ihn dann zurück. Um also sofort an die 2 heranzukommen, muss man so vorgehen.


<?php
  $a 1;
  echo ++$a;
?>

4. Logische Verknüpfungen

Die sind alle gleich gewichtet. Um aber nun eine logische Ordnung in das Chaos zu bringen, arbeitet man analog zu den mathematischen Berechnungen mit Klammern.


<?php
  $a == $b && ($a == $c || $a == $d)
?>

In diesem Fall ist also die Bedingung wahr, wenn $a gleich $b und(!) die Unterbedingung ebenfalls wahr ist. Und das ist der Fall wenn $a gleich $c oder(!) $a gleich $d. Dabei handelt es sich also um etwas völlig anderes als das.


<?php
  $a == $b && $a == $c || $a == $d
?>

Wichtig

Wer das nicht versteht, sollte seine(n)/ihre(n) Mathelehrer/in oder - dozent/in fragen. Und wer es dann noch immer nicht begreift, sollte seine/ihre Programmierkarriere an den Nagel hängen. Sch***ß Gleichberechtigung! Verdammte Sprachvergewaltigung!

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt