php 关于 0 null 空 false 的简单记录

好记性不如烂笔头,记下来,自己看。

isset 用于检测变量是否被设置,使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE 。
empty 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE 。

如果变量为 0 ,则empty()会返回TRUE,isset()会返回TRUE;
如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;
如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE。

注意:isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数;
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty函数;
当要 判断 一个变量 存在且不为空 先 isset 函数 再用 empty 函数;

话不多说直接看代码:

<?php
$Arr = array(
    'a' => 0, 'b' => '0', 'c' => '', 'd' => null,
    'e' => 'null', 'f' => array(), 'g' => false
);
var_dump($Arr);

Res::result($Arr);

class Res
{
    public static function result(array $parms)
    {
        for ($i = 0; $i < count($parms) - 1; $i++) {
            $keysArr = array_keys($parms);
            for ($m = 1; $m < (count($parms) - $i); $m++) {

                echo $keysArr[$i] . '==' . $keysArr[$i + $m] . "的结果是:";
                var_dump($parms[$keysArr[$i]] == $parms[$keysArr[$i + $m]]);
            }
        }
    }
}

输出结果如下:

http://kul.cn