2009年03月05日 13:23
パーマリンク | 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 />";
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");
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");
/ 金額 : ¥ 2,940
1-5
6-10