Variablen in PHP/JS auf Existenz prüfen

Bei der täglichen Arbeit mit Variablen in PHP und JavaScript stößt man oft auf die Abfrage, ob eine Variable leer ist. Dabei lohnt es sich, die nativen Funktionen und deren Unterschiede zur Überprüfung zu kennen. Ärgerlicherweise gibt es keine einfache Methode, um im intuitiven Sinne zu überprüfen, ob eine Variable vorhanden ist oder nicht. Was damit gemeint ist, verdeutlicht nachstehende Matrix. Durch kleine Helper-Funktionen lässt sich das Gewünschte aber nachrüsten.


PHP

  === null == null is_null isset empty if/else ternary count > 0 == '' === '' @__x
$a true true true false true false false false true false false
null true true true false true false false false true false false
[] false true false true true false false false false false false
0 false true false true true false false true true false true
1 false false false true false true true true false false true
-1 false false false true false true true true false false true
'' false true false true true false false true true true false
' ' false false false true false true true true false false false
str false false false true false true true true false false true
[0,1] false false false true false true true true false false true
[0] false false false true false true true true false false true
new stdClass() false false false true false true true true false false false

Implementierung von __x:

740550c6b3d2b9ae03e4d220eb08e6e3

Die Helper-Funktion __x wird dabei mit dem üblicherweise nicht zu empfehlenden Error Control Operator @ aufgerufen, um auch zuvor undefinierte Variablen prüfen zu können.

JavaScript

  === null == null typeof input === 'undefined' if/else ternary length > 0 == '' === '' __x
$a false true true false false type error false false false
null true true false false false type error false false false
[] false false false true true false true false false
0 false false false false false false true false true
1 false false false true true false false false true
-1 false false false true true false false false true
'' false false false false false false true true false
' ' false false false true true true false false false
str false false false true true true false false true
[0,1] false false false true true true false false true
[0] false false false true true true false false true
new Object() false false false true true false false false false

Implementierung von __x:

740550c6b3d2b9ae03e4d220eb08e6e3

Zurück