限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
empty与isset用法与区别
empty()如果 var 是非空或非零的值, 则 empty() 返回 FALSE。换句话说, “”、0、”0″、NULL、FALSE、array()、var $var;
以及没有任何属性的对象都将被认为是空的, 如果 var 为空, 则返回 TRUE。
isset() 如果 var 存在则返回 TRUE, 否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后, 它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量empty()empty(),将返回 FALSE。
同时要注意的是一个 NULL 字节(””)并不等同于 PHP 的 NULL 常数。
简单分析的是isset判断这个变量存不存在, empty是判断是否是空值, 不存在一定是空, 但空不一定是不存在, 空包括, 各种类型的空, 空类型, 空字符串,
空对象, false, NULL, 空数组等.
empty() 判断一个变量是否为”空”, isset() 判断一个变量是否已经设置。正是这种所谓的”顾名思义”, 令我开始时走了些弯路:当一个变量值等于0时, empty()也会成立(true),
因而会发生一些意外。原来, empty() 和 isset() 虽然都是变量处理函数, 它们都用来判断变量是否已经配置, 它们却是有一定的区别:
empty还会检测变量是否为空、为零。当一个变量值为0, empty() 认为这个变量同等于空, 即相当于没有设置。
以下是两个函数的区别:
empty() true(真): “” 0 “0” null false array() 和没有赋值的变量$var (注意: ” ” empty()函数返回的是false, “0.00” 返回的是false);
isset() false(假): usset()释放的变量 null;
判断的值 isset() empty() if()
true true false true
false true true false
“” true true false
” ” true false true
0 true true false
“0” true true false
null false true false
array() true true false
0.00 true false true
$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;
<?php
/**
* isset — 检测变量是否设置
* 如果 变量 存在则返回 true, 否则返回 false
*
* empty — 检查一个变量是否为空
* 如果 变量 是非空或非零的值,则 empty() 返回 false
**/
$is_var = '';
if(isset($is_var)) {
echo "变量存在!
";
} else {
echo "变量不存在!
";
}
if(empty($is_var)) {
echo "变量为空!
";
} else {
echo "变量不为空!
";
}
?>
注意:empty() 只检测变量, 检测任何非变量的东西都将导致解析错误!
以下会出现错误
empty()和isset()作用在于:主要抑制访问变量或数组键值不存在时的注意错误, 与直接使用if()判断有所不同, if判断不存在的变量时, 会出现注意级别的错误。
"孙悟空", "two"=>"唐僧");
$task = !empty($arr['task']) ? $arr['task'] : "";
echo "测试数据:".$task;
?>
在PHP众多函数中, empty(), (), isset()三个函数的区别经常让很多不解, 下面用一张真值表讲解这三个函数的区别:
变量 empty isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0″ true false true
$a=”true” false false true
$a=”false” false false true
注意:empty()与isset()在参数没有定义的情况下, 是不会有警告的
使用isset()和empty()与count()、()和()函数相比, isset()和empty()对于检测一个变量是否为空等场景更加简单和高效。
限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410