PHPのisset()、empty()、is_null()の結果の違い

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

?>

コメント

タイトルとURLをコピーしました