Guten Abend Patrick,
if($mailSent == TRUE) {
ja, den Quatsch sieht man aber oft. [...]
Du wirst lachen:
in der Tat, nachdem ich deinen Text gelesen habe, musste ich wirklich erstmal lachen.
Allahmalacha!
Doch dann wurde ich plötzlich wieder ernst und habe mich gefragt, ob man Leute, die das ernsthaft empfehlen, bedauern soll. Oder ihnen eine Therapie empfehlen. Oder einen Grundlagenkurs.
Sie zeigen nämlich damit, dass sie nicht verstanden haben, was bei einer
if
-Abfrage passiert.
Richtig: Ein Ausdruck wird auf seinen Wahrheitswert hin bewertet. Ob dieser Ausdruck eine einzelne Variable, ein Funktionsaufruf, eine komplizierte Verknüpfung oder gar nur eine Konstante ist, spielt keine Rolle.
Als Begründung gab er an, dass man so am Ende den Sinn der Abfrage besser versteht (also dass da eine
bool
-Variable auf ihren Inhalt überprüft wird). Ich bin fast vom Glauben abgefallen 😉
Ziemlich hanebüchen. Zumal bei sinnvoller Namensgebung die Kurzform, wie ich sie empfehle, sogar besser lesbar und eingängiger ist:
if (FormElement.checked)
if (isValidParam(x))
if (!mustRevalidate)
Ich sage es mal so: Falsch ist es nicht und der von mir erwähnte Professor hat nicht unrecht
Technisch gesehen ist es ja nicht schädlich, was er empfiehlt. Mit seiner Begründung hat er aber IMO schon unrecht: Die Vergleichsoperation mit einer Boolean-Konstante macht's umständlicher und damit für mich schwerer zu erfassen - erst recht, wenn die Logik auch noch invertiert wird (also !=TRUE oder ==FALSE).
Live long and pros healthy,
Martin
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.