PHPのisset()、empty()、is_null()の結果の違い。
PHP 7.0.27で調べた結果。
評価する値 | isset() | empty() | is_null() |
0 | true | true | false |
‘0’ | true | true | false |
1 | true | false | false |
‘1’ | true | false | false |
” | true | true | false |
‘aiueo’ | true | false | false |
null | false | true | true |
true | true | false | false |
false | true | true | false |
[] | true | true | false |
[‘aiueo’] | true | false | false |
‘name’ => ‘tanaka’ | true | false | false |
$var(初期化していない変数) | false | true | true |
調べたときに使ったコード。
#!/usr/bin/php <?php $values = [ 0, // 数値の0 '0', // 文字の0 1, // 数値の1 '1', // 文字の1 '', // 空文字 'aiueo', // 文字列 null, true, false, [], // 空配列 ['aiueo'], // 配列 'name' => 'tanaka', $val // 初期化していない変数 ]; echo '|isset|empty|is_null|'; foreach($values as $value) { var_export($value); echo PHP_EOL; echo '|'; var_export(isset($value)); echo '|'; var_export(empty($value)); echo '|'; var_export(is_null($value)); echo '|'; echo PHP_EOL . PHP_EOL; } ?>
コメント