PHP作后端数据处理的时候,常常须要对数据是否为[""/"0"/0/FALSE/NULL/array()/var $foo]等状态进行判断,最常使用的是empty() || isset(),这两个函数的区别比较明显,PHP手册上的定义是这样的:php
isset():检测变量是否设置,而且不是 NULLshell
empty():若是 var 是非空或非零的值,则 empty() 返回 FALSE后端
其中要注意的是empty()对0的处理,当变量数值为0时,empty返回true,则所判断数值包含0时,必须选择isset()
函数
二者能够配合使用,如 判断一个变量 有定义 而且 不为空[empty对未定义的变量返回true=>empty()不能肯定变量是否已定义]性能
有时候为了代码的简洁咱们直接使用变量进行判断 spa
if($_GET['var']) echo 'the test code';
但这时若是PHP没有接收到$_GET['var']值的时候,会产生一个notice错误{empty则不会有这种状况[empty()当变量没有置值时不产生警告]}code
PHP Notice: Undefined index: var in php shell code on line 1
记录notice会产生开销,所以对PHP的性能也会有影响it