is_null, empty, isset, unset 我们先来看看这4个函数的描述。
isset 判断变量是否已存在(配置)
unset 把变量删除(释放)掉
empty 判断变量是否为空
is_null 判断变量是否为NULL
ok,已经开始搞人了。那么开始,这4个函数中除了unset,其他3个都是判断函数,unset首先出局,因为他不会搞错,其次是is_null,我们可以把它看成是!isset,是isset的一个逆操作,下面一张表可以很清楚的说明他们之间的关系:
变量 |
empty |
is_null |
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 |
从中我们可以发现只要变量是否为” “或者0,或者是false和null,只要是这些值empty都会返回true,而isset是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true,而is_null正好是isset的反结果。
当然如果只是想做如下工作:
echo !isset($_GET[‘a’]); //如果得不到变量a的值
echo empty($_GET[‘a’]); //如果变量a的值是空
那么结果都是一样的,都可以用。
外一则:
//========= 判断 0 和 ” 以及 empty null false的关系 start =========//
if(‘safdasefasefasf’==0){
echo “该字符串转换为数字 等于 0
“;
}//output:该字符串转换为数字 等于零。
这是关键的一个例子
手册上有解释:该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。
也就是说 ‘3asfdf’==3 ; ‘adsfasdf’==0 相当要注意
$a=0;
if($a==”){
echo “0 等于 ”
“;
} //output:0 等于”
if(trim($a)==”){
echo “trim(0)等于”
“;
} //no output
if($a===”){
echo “0===”
“;
} //no output
if(empty($a)){
echo “” is empty
“;
} //output:” is empty
if(is_null($a)){
echo “0 is null
“;
} //no output
if(is_numeric($a)){
echo “0 is numeric
“;
} //output:0 is numeric
if(is_string($a)){
echo “0 is string
“;
} //no output
if(strval($a)==”){
echo “转换成字符串的0 is ”
“;
} //no output
//========= 判断 0 和 ” 以及 empty null false的关系 end =========//
//========= 判断 ” 和 0 以及 empty null false的关系 start =========//
$b = ”;
if($b==0){
echo “” 等于 0
“;
} //output:” 等于 0
if(!”){
echo “” 就是false
“;
} //output:” 就是false
if(!0){
echo “0 就是false
“;
} //output:0 就是false
//========= 判断 ” 和 0 以及 empty null false的关系 end =========//
echo “在判断空(”)的时候一定要小心,0 也相当于” ,0 和 ” 都相当于空字符和false,判断为空最好用===”;
?>
输出的结果是:
0 等于 ”
” is empty
0 is numeric
” 等于 0
” 就是false
0 就是false
在判断空(”)的时候一定要小心,0 也相当于” ,0 和 ” 都相当于空字符和false,判断为空最好用===
只能这样解释:0 也相当于 ” ,0 和 ” 都相当于空字符和false
在判断空(”)的时候一定要小心,0 也相当于 ” ,0 和 ” 都相当于空字符和false,判断为空最好用===;
如需转载请注明: 转载自26点的博客
哈,真全面呀!这下可算明白了,谢谢!
^_^ 谢谢