2013-12-14 9 views
19

Ich verstehe nicht den Unterschied zwischen isset() und !empty().Was ist der Unterschied zwischen 'isset()' und '! Empty()' in PHP?

Denn wenn eine Variable gesetzt wurde, ist das nicht das Gleiche als nicht leer?

+3

Haben Sie das Handbuch für beide lesen? [Hier] (http://www.php.net/isset) und [hier] (http://www.php.net/empty) – George

+2

Lies diese http://kunststube.net/isset/ dazu. Danke @deceze – hek2mgl

+0

'isset();' überprüft, ob die Variable tatsächlich gesetzt ist, da in der Variablen tatsächlich auf einen Wert etwas zeigt. 'empty();' überprüft, ob der Wert, auf den die Variable verweist, irgendetwas enthält. – AlphaDelta

Antwort

30

ISSET prüft die Variable, um festzustellen, ob sie gesetzt wurde. Mit anderen Worten, es wird geprüft, ob die Variable ein beliebiger Wert außer NULL ist oder keinem Wert zugewiesen ist. ISSET gibt TRUE zurück, wenn die Variable existiert und einen anderen Wert als NULL hat. Das bedeutet, Variablen, denen ein "", "0", "0" oder "FALSE" zugewiesen sind, werden gesetzt und sind daher TRUE für ISSET.

LEER überprüft, ob eine Variable leer ist. Empty wird interpretiert als: "" (eine leere Zeichenfolge), 0 (ganze Zahl), 0.0 (Gleitkommazahl), "0" (Zeichenfolge), NULL, FALSE, array() (ein leeres Array) und "$ var;" (Eine Variable deklariert, aber ohne einen Wert in einer Klasse.

Weitere Informationen finden Sie this article

+3

"" ist nicht leer. "" ist leer. – EresDev

+1

Können Sie ein Beispiel angeben, in dem der Isset True ist, aber Leer ist False. Auch ein Beispiel, in dem isset falsch ist, aber leer ist wahr? – Unbreakable

0

isset - Bestimmen, ob eine Variable festgelegt ist und nicht NULL ist.

!empty - Bestimmen, ob eine Variable NICHT leer ist.

+0

'! Isset (NULL) === leer (NULL)'. – hek2mgl

+3

Also wie ist "leer" definiert? Unzureichende Erklärung. – deceze

0

Isset Rückkehr false, wenn die Variable nicht gesetzt wurde oder null ist und true zurückgibt, wenn die Variable gesetzt wurde und nicht null

! leer return true, wenn die Variable gesetzt und nicht leer ist pty string, leeres Array, "0", 0 und false sind als leer definiert.

0

Und noch eine Bemerkung. empty() prüft, ob die Variable auch existiert. I.e. Wenn wir empty() auf die Variable ausführen, die nicht deklariert wurde, erhalten wir keinen Fehler, empty() gibt 'true' zurück. Daher können wir isset() vermeiden, wenn wir als nächstes prüfen müssen, ob die Variable leer ist.

So

isset($var) && !empty($var) 

wird gleich zu

!empty($var) 
Verwandte Themen