2、empty,isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null 和 “参数本身”只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

3、isset():仅当null和未定义,返回false;

4、empty():""、0、0.0、"0"、NULL、FALSE、array(),未定义,均返回true;但是 '0.0' 和  '00' 返回false。

5、is_null():仅判断是否为null,未定义 报警告;

6、变量本身作为参数,与empty()一致,但接受未定义变量时,报警告;

更详细的参考

补充:$a ="string";
unset($a);
echo is_null($a);        输出值为1,说明被unset的变量值变成null  了。