Проверить наличие переменных в PHP / JS

При ежедневной работе с переменными в 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

Назад