Fallunterscheidungen

Ich hab es mir beim Programmieren angewöhnt, bei Fallunterscheidungen die Variable auf die rechte Seite des Vergleiches zu schreiben. Das verhindert Fehler.
Das heißt, anstatt

<?php
if ( $antwort == 42 ) {
  // What was the question?

schreibe ich

<?php
if ( 42 == $antwort ) {
  // What was the question?

Das sieht auf den ersten Blick ein bisschen komisch aus, hat aber ein gewaltigen Vorteil:
Wenn (und hier ist wirklich „wenn“ und nicht „falls“ gemeint!) ich das nächste mal ein ‚=‘ vom Vergleich vergesse, kompiliert mein Code nicht mehr. Der Obige allerdings schon! Das ist definitiv nicht gewollt und kann sogar richtigen Schaden verursachen.
Das folgende Beispiel soll das verdeutlichen:


Hier hat jeder Nutzer Zugriff auf alle Daten, nicht nur der Admin.

Zuweisungen werden von rechts nach links abgearbeitet. Die linke Variable bekommt den Wert, der rechts neben dem '='-Zeichen steht.
Eine Zuweisung schlägt so gut wie nie fehl (zumindest in dynamisch/schwach getypten Sprachen, bei statisch/stark getypten Sprachen kann es anders aussehen), damit wäre im unteren Beispiel jeder Nutzer ein 'admin'.
Einem String, einem Integer oder einer anderen Konstante kann man allerdings keinen anderen Wert zuweisen. Das bemerkt der Compiler und beendet die Kompilierung mit einem Fehlerstatus. Interpreter verursachen eventuell eine Laufzeitpanik. Das ist zwar nicht schön, aber besser als unberechtigte Zugriffe!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

eightundtwenty ÷ seven =