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