HOME>WEBプログラム覚書>PHP empty() isset() is_null() if()

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

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

変数サンプル

PHP

  1. <?php
  2. $a = NULL;
  3. $b = "";
  4. $c = 0;
  5. $d = "0";
  6. $e = 1;
  7. $f = "1";
  8. $g = array();
  9. $h = true;
  10. $i = false;
  11.  
  12. class j {};
  13. $j = new j();
  14. $k;
  15. $l = "null";
  16.  
  17. class m {var $a;};
  18. $m = new m();
  19. ?>

テストコード

PHP

  1. <?php
  2. echo "<h5>is_null()</h5>";
  3. echo (is_null($a) ? "NULL    => true" : "NULL    => false") . "<br />";
  4. echo (is_null($b) ? "''      => true" : "''      => false") . "<br />";
  5. echo (is_null($c) ? "0       => true" : "0       => false") . "<br />";
  6. echo (is_null($d) ? "'0'     => true" : "'0'     => false") . "<br />";
  7. echo (is_null($e) ? "1       => true" : "1       => false") . "<br />";
  8. echo (is_null($f) ? "'1'     => true" : "'1'     => false") . "<br />";
  9. echo (is_null($g) ? "array() => true" : "array() => false") . "<br />";
  10. echo (is_null($h) ? "true    => true" : "true    => false") . "<br />";
  11. echo (is_null($i) ? "false   => true" : "false   => false") . "<br />";
  12. echo (is_null($j) ? "object  => true" : "object  => false") . "<br />";
  13. echo (is_null($k) ? "var     => true" : "var     => false") . "<br />";
  14. echo (is_null($l) ? "Str null=> true" : "var     => false") . "<br />";
  15.  
  16. echo "<hr />";
  17.  
  18. echo "<h5>empty()</h5>";
  19. echo (empty($a) ? "NULL    => true" : "NULL    => false") . "<br />";
  20. echo (empty($b) ? "''      => true" : "''      => false") . "<br />";
  21. echo (empty($c) ? "0       => true" : "0       => false") . "<br />";
  22. echo (empty($d) ? "'0'     => true" : "'0'     => false") . "<br />";
  23. echo (empty($e) ? "1       => true" : "1       => false") . "<br />";
  24. echo (empty($f) ? "'1'     => true" : "'1'     => false") . "<br />";
  25. echo (empty($g) ? "array() => true" : "array() => false") . "<br />";
  26. echo (empty($h) ? "true    => true" : "true    => false") . "<br />";
  27. echo (empty($i) ? "false   => true" : "false   => false") . "<br />";
  28. echo (empty($j) ? "object  => true" : "object  => false") . "<br />";
  29. echo (empty($k) ? "var     => true" : "var     => false") . "<br />";
  30. echo (empty($l) ? "Str null=> true" : "var     => false") . "<br />";
  31. echo (empty($m) ? "object2 => true" : "var     => false") . "<br />";
  32.  
  33. echo "<hr />";
  34.  
  35. echo "<h5>isset()</h5>";
  36. echo (isset($a) ? "NULL    => true" : "NULL    => false") . "<br />";
  37. echo (isset($b) ? "''      => true" : "''      => false") . "<br />";
  38. echo (isset($c) ? "0       => true" : "0       => false") . "<br />";
  39. echo (isset($d) ? "'0'     => true" : "'0'     => false") . "<br />";
  40. echo (isset($e) ? "1       => true" : "1       => false") . "<br />";
  41. echo (isset($f) ? "'1'     => true" : "'1'     => false") . "<br />";
  42. echo (isset($g) ? "array() => true" : "array() => false") . "<br />";
  43. echo (isset($h) ? "true    => true" : "true    => false") . "<br />";
  44. echo (isset($i) ? "false   => true" : "false   => false") . "<br />";
  45. echo (isset($j) ? "object  => true" : "object  => false") . "<br />";
  46. echo (isset($k) ? "var     => true" : "var     => false") . "<br />";
  47. echo (isset($l) ? "Str null=> true" : "var     => false") . "<br />";
  48. ?>

実行結果

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

Notice: Undefined variable: k in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/03/php_empty_isset_is_null_if.php on line 166
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にしたいとき。

サンプルコード

PHP

  1. <?php
  2. function notNull($key, $var = null) {
  3.     if (!is_null($var) && $var !== '') {
  4.         echo "$key => true" . "<br />";
  5.     } else {
  6.         echo "$key => false" . "<br />";
  7.     }
  8. }
  9.  
  10. echo "<h5>notNull()</h5>";
  11. notNull("NULL",     $a);
  12. notNull("''",       $b);
  13. notNull("0",        $c);
  14. notNull("'0'",      $d);
  15. notNull("1",        $e);
  16. notNull("'1'",      $f);
  17. notNull("array()",  $g);
  18. notNull("true",     $h);
  19. notNull("false",    $i);
  20. notNull("object",   $j);
  21. notNull("var",      $k);
  22. notNull("Str null", $l);
  23. notNull("no Arg");
  24. ?>

実行結果

notNull()
NULL => false
'' => false
0 => true
'0' => true
1 => true
'1' => true
array() => true
true => true
false => true
object => true

Notice: Undefined variable: k in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/03/php_empty_isset_is_null_if.php on line 257
var => false
Str null => true
no Arg => false

if文の評価も見ておく

サンプルコード

PHP

  1. <?php
  2. echo "<h5>funcIf()</h5>";
  3.  
  4. function funcIf($key, $var = null) {
  5.     if ($var) {
  6.         echo "$key => true" . "<br />";
  7.     } else {
  8.         echo "$key => false" . "<br />";
  9.     }
  10. }
  11.  
  12. funcIf("NULL",     $a);
  13. funcIf("''",       $b);
  14. funcIf("0",        $c);
  15. funcIf("'0'",      $d);
  16. funcIf("1",        $e);
  17. funcIf("'1'",      $f);
  18. funcIf("array()",  $g);
  19. funcIf("true",     $h);
  20. funcIf("false",    $i);
  21. funcIf("object",   $j);
  22. funcIf("var",      $k);
  23. funcIf("Str null", $l);
  24. funcIf("no Arg");
  25. ?>

実行結果

funcIf()
NULL => false
'' => false
0 => false
'0' => false
1 => true
'1' => true
array() => false
true => true
false => false
object => true

Notice: Undefined variable: k in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/03/php_empty_isset_is_null_if.php on line 314
var => false
Str null => true
no Arg => false
投稿日 2009年3月 5日 13:23
カテゴリ PHP
タグ テストコード | 関数
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1167

コメント

コメントする
Name
Email Address
URL