Der Martin: if($display = login($user)) .... Rückgabewert einer Funktion

Beitrag lesen

Hi,

die Funktion login() gibt einen boolschen Wert zurück, ob der Login gelungen ist. Dieser soll auf die Variable $display geschrieben werden, allerdings die Verneinung des boolschen Wertes. Andererseits wird mit dem if der Gesamtausdruck getestet, der sich auf das Ergebnis von login() beziehen soll.

kein Problem. ;-)
Da war doch mal was mit der doppelten Verneinung ...

if(!$display = login($user))
im Fehlerfall von login, wird $display zwar true, allerdings wird der ganze if() Ausdruck auch true. Der sollte aber false bleiben.
Wie kriege ich das hin?

Doppelt negieren und richtig klammern:

if ( !($display = !login()) )

So wird der einmal negierte Wert zugewiesen, aber der zweimal negierte Wert als if-Ausdruck ausgewertet.

So long,
 Martin

--
Wenn Zeit das Kostbarste ist, was wir haben, dann ist Zeitverschwendung die größte aller Verschwendungen.
  (Benjamin Franklin, amerikanischer Tüftler und Politiker)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(