作者:小李子 | 来源:互联网 | 2018-07-16 09:11
简单分析的是isset判断这个变量存不存在,empty是判断是否是空值,不存在一定是空,但空不一定是不存在,空包括,各种类型的空,空类型,0空串,空对象,空数组,假,NULL等.
简单分析的是isset判断这个变量存不存在,empty是判断是否是空值,不存在一定是空,但空不一定是不存在,空包括,各种类型的空,空类型,0 空串,空对象,空数组,假,NULL等.
代码如下 |
|
$a=0;
这个时候
empty($a) == true;
isset($a) == true;
$a=1;
这个时候
empty($a) == false;
isset($a) == true;
在没有定义$a的时候,isset($a) == true;
empty($a) == true;
|
其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;
如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;
如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;
实例
代码如下 |
|
//$a=0;
//这个时候
var_dump (empty($a));// == true;
var_dump (isset($a));// == true;
//$a=1;
//这个时候
var_dump (empty($a));// == false;
var_dump (isset($a));// == true;
//在变量没有被定义$bbbbbbbbbb的时候,
var_dump (isset($bbbbbbbbbb));// == false;
var_dump (empty($bbbbbbbbbb));// == true;
|
实例
代码如下 |
|
/**
* isset — 检测变量是否设置
* 如果 变量 存在则返回 true, 否则返回 false
*
* empty — 检查一个变量是否为空
* 如果 变量 是非空或非零的值,则 empty() 返回 false
**/
$is_var = '';
if(isset($is_var)) {
echo "变量存在! ";
} else {
echo "变量不存在! ";
}
if(empty($is_var)) {
echo "变量为空! ";
} else {
echo "变量不为空! ";
}
?>
|
empty() 判断一个变量是否为“空”,isset() 判断一个变量是否已经设置。正是这种所谓的“顾名思义”,令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外。原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。