(php)empty()とisset()を比較してみる。

結論

  • empty関数 → 変数が空であるかどうか
  • isset関数 → 変数がセットされているかandNULL でないか 

1. empty関数 (変数が空であるかどうかを調べる)

 bool empty ( mixed $var )

<?php
$var;
var_dump(empty($var));  // true 空  

$var = '';
var_dump(empty($var));  // true

$var = 0;
var_dump(empty($var));  // true

$var = '0';
var_dump(empty($var));  // true

$var = null;
var_dump(empty($var));  // true

$var = array();
var_dump(empty($var));  // true

$var = ' りんご';
var_dump(empty($var));   // false   空じゃない  

?>    
  • "" (空文字列)
  • 0 (整数 の 0)
  • 0.0 (浮動小数点数の 0)
  • "0" (文字列 の 0)
  • NULL
  • FALSE
  • array() (空の配列)
  • $var; (変数が宣言されているが、値が設定されていない)

2. isset関数(変数がセットされていること、そして NULL でないことを調べる)

 bool isset ( mixed $var [, mixed $... ] )

<?php
$var = '';
var_dump(isset($var));  // true

$var = 0;
var_dump(isset($var));  // true

$var = null;
var_dump(isset($var));  // false
?>  

http://jp2.php.net/manual/ja/function.empty.php
http://jp2.php.net/manual/ja/function.isset.php