isset()
jens65m
- php
0 Gagamehl0 Der Martin
0 Bademeister
Hallo,
gibt es einen Unterschied zwischen
if(isset($var))
und
if($var)
??
LG, Jens
Hallo,
gibt es einen Unterschied zwischen
if(isset($var))
und
if($var)
??
LG, Jens
Ja. Kuck Dir mal diese Tabelle an
Hallo,
gibt es einen Unterschied zwischen
if(isset($var))
und
if($var)
??
ja, neben der teils unterschiedlichen Auswertung, die Gagamehl schon angedeutet hat, einen (IMHO) ganz wichtigen:
if ($var)
schmeißt eine Notice-Meldung, wenn $var nicht definiert ist, if (isset($var))
dagegen nicht, weil es genau den Fall prüft, dass das Argument möglicherweise nicht definiert ist (nicht existiert).
Die Abfrage if ($var)
ist etwa gleichbedeutend mit der Aufforderung des Chefs: "Schicken Sie bitte den Kollegen ... zu mir", während if (isset($var))
dagegen eher der Frage entspricht: "Ist der Kollege ... im Hause?"
Ciao,
Martin
Hi Jens.
Neben den bereits beschriebenen Unterschieden in den praktischen Auswirkungen gibt es einen ganz erheblichen konzeptionellen Unterschied:
if($var)
Hier wird der Ausdruck $var
ausgewertet. Wenn etwa $var = 5;
gesetzt ist, dann ist if($var)
identisch mit if(5)
.
if(isset($var))
Hier hingegen wird nicht der Ausdruck $var
, sondern der Variablenname (das Literal "$var") von dem Konstrukt isset ausgewertet: isset(5)
wäre hier natürlich ganz und gar nicht identisch zu isset($var)
, sondern würde einen Fehler erzeugen. Dieser Umstand unterscheidet das Sprachkonstrukt "isset" auch erheblich von echten Funktionen.
Viele Grüße,
der Bademeister