Tom: Abfragen von Variablen

Beitrag lesen

Hello,

» Schlechter Stil ist es, einen boolschen Variableninhalt oder ein Ausdrucksergebnis gegen einen der boolschen Werte true/false zu testen. "Ist es wahr, dass $variable wahr ist?" wird nicht wahrer.

Das mag für viele andere Programmiersprachen gelten.
In PHP wird der Vergleich durchaus "wahrer", wenn man gegen false testet.

if ( $variable )

contra

if ( $variable === true )

Es ist mir klar, dass Du diesen Widerspruch nur provozieren wolltest ;-)

Das widerspricht meiner Aussage doch nicht, denn ich sprach nur von boolschem Inhalt. Den Fall mit dem Eindeutigkeitsoperator braucht man, wenn man neben boolschem Variableninhalt auch noch anderen erwartet und eine Eindeutigkeit benötigt. 0 == false aber 0 !== false.

Ich müsste jetzt für Dich zitieren, was Globe neulich mir geschrieben hat :-)

Da PHP nur eine lose Typbindung für seine Variablen kennt, ist es gerade wichtig bei booleschen Inhalten, dass man sich erst einmal davon überzeugt, dass die Variable denn auch noch den booleschen Typ hat oder die Funktion ein boolesches und _kein_ numerisches Ergenis liefert.

Bsp.:

if( !stripos('Hallo Welt, du bist so schön','hallo'))   ## falsch, weil Typ nicht geprüft wurde
    {
        echo 'Scheiß Welt!';
    }
    else
    {
        echo "Ach, wie geht's uns gut";
    }

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de