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;
}
?>

コメント