När man arbetar med variabler i PHP och JavaScript dagligen kommer man ofta över frågan om en variabel är tom. Det är värt att känna till de inbyggda funktionerna och deras skillnader för kontrolländamål. Irriterande finns det inget enkelt sätt att intuitivt kontrollera om en variabel finns eller inte. Matrisen nedan klargör vad som menas med detta. Men vad du vill kan eftermonteras med hjälp av små hjälpfunktioner.
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 |
Implementering av __x:
740550c6b3d2b9ae03e4d220eb08e6e3
Hjälparfunktionen __x anropas med felkontrolloperatören @, vilket vanligtvis inte rekommenderas, för att kunna kontrollera tidigare odefinierade variabler.
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 |
Implementering av __x:
740550c6b3d2b9ae03e4d220eb08e6e3