При щоденній роботі зі змінними в PHP та JavaScript часто трапляється запит, чи порожня змінна. Для перевірки варто знати власні функції та їх відмінності. Прикро, що немає простого способу інтуїтивно перевірити, чи є змінна чи ні. Наведена нижче матриця уточнює, що мається на увазі під цим. Однак те, що ви хочете, можна модернізувати за допомогою невеликих допоміжних функцій.
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 |
Впровадження __x:
740550c6b3d2b9ae03e4d220eb08e6e3
Допоміжна функція __x викликається за допомогою оператора контролю помилок @, що зазвичай не рекомендується, щоб мати можливість перевіряти раніше невизначені змінні.
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 |
Впровадження __x:
740550c6b3d2b9ae03e4d220eb08e6e3