Abfragen

Immer wieder schleichen sich Fehler ein, die bei einer besseren Schreibweise vermeiden lassen würden.
Einer dieser schleichenden Fehler ist die Überprüfung in einer IF-Abfrage oder ähnlichem.
Leicht vergisst man ein Doppeltes Istgleichzeichen (==), welches dann eine Zuweisung zufolge hat.

Beispiel:
    $boe_var = TRUE;
    . . .
    IF ($boe_var = FALSE) {
        ECHO 'Alles OK';
    } ELSE {
        ECHO 'Schwerer Fehler';
    }
    ECHO $boe_var;  // -> 0

Durch diese Schreibweise wird der Variable $boe_var der Wert FALSE zugewiesen und daher ist die IF-Anweisung immer Wahr also TRUE;
Verdeht man aber die IF-Abfrage, so das der Fixe Wert als erstes steht, so kann die Konstante nicht verfälscht werden und liefert somit immer FALSE

Beispiel:
    $boe_var = TRUE;
    . . .
    IF (FALSE = $boe_var) {
        ECHO 'Alles OK';
    } ELSE {
        ECHO 'Schwerer Fehler';
    }
    ECHO $boe_var;  // -> 1

Daher sollten Fixwerte immer als erstes in einer IF-Anweisung stehen.

Wenn mehrere Abfragen im selben IF überprüft werden, so sollten diese in mehrere Zeilen aufgeteilt werden, nichts ist schlimmer als wenn man in einer Anweisung Scrollen muss bzw. die Klammern-Enden nicht sehen kann.
Daher gilt Abfragen sollten immer leicht verständlich sein, damit Fremde bzw. man selbst sie leichter nachvollziehen kann.

Beispiel:
    IF ($a == $b && ($c != $d || $e == $f)) {

    sollte besser so geschrieben werden:

Beispiel:
    IF ($a == $b &&
        (
            $c != $d ||
            $e == $f
        )
    ) {

Zusätzlich könnte man so hier jede Zeile mit einem eigenen Kommentar versehen.

In Abfragen sollte man steht‚€ôs Zuweisungen oder andere Operationen vermeiden.

Beispiel:
    IF (@!$fp = FOPEN('data.dat', 'r')) {
        DIE ('fehler beim öffnen der Datei');
    }

Viel besser wäre es dies auf mehere Zeilen aufzuteilen, um eine bessere Übersicht zu bewahren.

Beispiel:
    @$fp = FOPEN('data.dat', 'r');
    IF (FALSE === $fp) {
        DIE ('fehler beim öffnen der Datei');
    }

Bei Rückgabewerten von Funktionen sollte man auch Vorsichtig sein, da sie vielleicht auch den Wert 0 zurückliefern kann.

Beispiel:
    $erg = foo ();
    IF (FALSE == $erg) {
        // fehler
    }

Dem zufolge würde auch der Rückgabewert 0 in den IF-Teil einfließen.
Verwendet man jedoch === zur Identitäts-Prüfung und nicht == für die Gleichheit von Werten, wird der Wert richtig erkannt.

Beispiel:
    $erg = foo ();
    IF (FALSE === $erg) {
        // fehler
    }