2009年03月05日 13:23

PHP empty() isset() is_null() if()

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/444

PHPのempty() isset() is_null() if文の評価について

変数サンプル


$a = NULL;
$b = "";
$c = 0;
$d = "0";
$e = 1;
$f = "1";
$g = array();
$h = true;
$i = false;

class j {};
$j = new j();
$k;
$l = "null";

class m {var $a;};
$m = new m();

テストコード


echo "<h5>is_null()</h5>";
echo (is_null($a) ? "NULL    => true" : "NULL    => false") . "<br />";
echo (is_null($b) ? "''      => true" : "''      => false") . "<br />";
echo (is_null($c) ? "0       => true" : "0       => false") . "<br />";
echo (is_null($d) ? "'0'     => true" : "'0'     => false") . "<br />";
echo (is_null($e) ? "1       => true" : "1       => false") . "<br />";
echo (is_null($f) ? "'1'     => true" : "'1'     => false") . "<br />";
echo (is_null($g) ? "array() => true" : "array() => false") . "<br />";
echo (is_null($h) ? "true    => true" : "true    => false") . "<br />";
echo (is_null($i) ? "false   => true" : "false   => false") . "<br />";
echo (is_null($j) ? "object  => true" : "object  => false") . "<br />";
echo (is_null($k) ? "var     => true" : "var     => false") . "<br />";
echo (is_null($l) ? "Str null=> true" : "var     => false") . "<br />";

echo "<hr />";

echo "<h5>empty()</h5>";
echo (empty($a) ? "NULL    => true" : "NULL    => false") . "<br />";
echo (empty($b) ? "''      => true" : "''      => false") . "<br />";
echo (empty($c) ? "0       => true" : "0       => false") . "<br />";
echo (empty($d) ? "'0'     => true" : "'0'     => false") . "<br />";
echo (empty($e) ? "1       => true" : "1       => false") . "<br />";
echo (empty($f) ? "'1'     => true" : "'1'     => false") . "<br />";
echo (empty($g) ? "array() => true" : "array() => false") . "<br />";
echo (empty($h) ? "true    => true" : "true    => false") . "<br />";
echo (empty($i) ? "false   => true" : "false   => false") . "<br />";
echo (empty($j) ? "object  => true" : "object  => false") . "<br />";
echo (empty($k) ? "var     => true" : "var     => false") . "<br />";
echo (empty($l) ? "Str null=> true" : "var     => false") . "<br />";
echo (empty($m) ? "object2 => true" : "var     => false") . "<br />";

echo "<hr />";

echo "<h5>isset()</h5>";
echo (isset($a) ? "NULL    => true" : "NULL    => false") . "<br />";
echo (isset($b) ? "''      => true" : "''      => false") . "<br />";
echo (isset($c) ? "0       => true" : "0       => false") . "<br />";
echo (isset($d) ? "'0'     => true" : "'0'     => false") . "<br />";
echo (isset($e) ? "1       => true" : "1       => false") . "<br />";
echo (isset($f) ? "'1'     => true" : "'1'     => false") . "<br />";
echo (isset($g) ? "array() => true" : "array() => false") . "<br />";
echo (isset($h) ? "true    => true" : "true    => false") . "<br />";
echo (isset($i) ? "false   => true" : "false   => false") . "<br />";
echo (isset($j) ? "object  => true" : "object  => false") . "<br />";
echo (isset($k) ? "var     => true" : "var     => false") . "<br />";
echo (isset($l) ? "Str null=> true" : "var     => false") . "<br />";

実行結果

is_null()
NULL => true
'' => false
0 => false
'0' => false
1 => false
'1' => false
array() => false
true => false
false => false
object => false
var => true
Str null=> false

empty()
NULL => true
'' => true
0 => true
'0' => true
1 => false
'1' => false
array() => true
true => false
false => true
object => false
var => true
Str null=> false
object2 => false

isset()
NULL => false
'' => true
0 => true
'0' => true
1 => true
'1' => true
array() => true
true => true
false => true
object => true
var => false
Str null=> true

emptyはPHP4と5で動作が変わってるので注意。

null と 空文字、値がない場合falseにしたいとき。

サンプルコード


function notNull($key, $var = null) {
    if (!is_null($var) && $var !== '') {
        echo "$key => true" . "<br />";
    } else {
        echo "$key => false" . "<br />";
    }
}

echo "<h5>notNull()</h5>";
notNull("NULL",     $a);
notNull("''",       $b);
notNull("0",        $c);
notNull("'0'",      $d);
notNull("1",        $e);
notNull("'1'",      $f);
notNull("array()",  $g);
notNull("true",     $h);
notNull("false",    $i);
notNull("object",   $j);
notNull("var",      $k);
notNull("Str null", $l);
notNull("no Arg");

実行結果

notNull()
NULL => false
'' => false
0 => true
'0' => true
1 => true
'1' => true
array() => true
true => true
false => true
object => true
var => false
Str null => true
no Arg => false

if文の評価も見ておく

サンプルコード


echo "<h5>funcIf()</h5>";

function funcIf($key, $var = null) {
    if ($var) {
        echo "$key => true" . "<br />";
    } else {
        echo "$key => false" . "<br />";
    }
}

funcIf("NULL",     $a);
funcIf("''",       $b);
funcIf("0",        $c);
funcIf("'0'",      $d);
funcIf("1",        $e);
funcIf("'1'",      $f);
funcIf("array()",  $g);
funcIf("true",     $h);
funcIf("false",    $i);
funcIf("object",   $j);
funcIf("var",      $k);
funcIf("Str null", $l);
funcIf("no Arg");

実行結果

funcIf()
NULL => false
'' => false
0 => false
'0' => false
1 => true
'1' => true
array() => false
true => true
false => false
object => true
var => false
Str null => true
no Arg => false

PHP empty() isset() is_null() if()タグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/444
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ