Podczas pracy ze zmiennymi w PHP i JavaScript często pojawia się zapytanie, czy zmienna jest pusta. W celu sprawdzenia warto poznać natywne funkcje i ich różnice. Irytujące jest to, że nie ma łatwego sposobu na intuicyjne sprawdzenie, czy zmienna jest obecna, czy nie. Poniższa macierz ilustruje, co to oznacza. Jednak to, co chcesz, można doposażyć za pomocą małych funkcji pomocniczych.
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 |
Wdrożenie __x:
740550c6b3d2b9ae03e4d220eb08e6e3
Funkcja pomocnicza __x jest wywoływana z operatorem kontroli błędów @, co zwykle nie jest zalecane, aby można było również sprawdzić wcześniej niezdefiniowane zmienne.
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 |
Wdrożenie __x:
740550c6b3d2b9ae03e4d220eb08e6e3