这几个变量推断函数在PHP开发顶用的实在挺多的,而且粗看上去都差不多,但实在照样有不少的区分的,假如搞不清楚,或许就会遗留一些潜伏的bug, 包含我自已也遇到过如许的坑,比方有一次我就遇到过用empty推断涌现的问题,前端是许可输入0的,然则我用empty推断的话就为真,我就直接给报错了,所以这里就不能用这个推断了。
引荐:《PHP教程》
我们先看下这几个函数细致的用处
isset — 检测变量是不是已设置而且非 NULL
empty — 搜检一个变量是不是为空,以下的东西都被认作空
“” (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
“0” (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声清楚明了,然则没有值的变量)
is_null — 检测变量是不是为 NULL
一 isset
推断变量有没有先定义,数组的键值有没有存在等
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
echo $key . '=>' . var_dump(isset($val)) . "\r\n";
}
//以上输出只需 null返回false,别的都为真
$arr = ['name' =>'lc', 'age' => 22, 'address' =>null];
echo isset($arr['name']) . "\r\n"; //true
echo isset($arr['mobile'])."\r\n"; //false
echo isset($arr['address']) ."\r\n"; //false
//未定义的键和值为null,返回false
empty
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
echo $key . '=>' . var_dump(empty($val)) . "\r\n";
}
//以上输出 '" "',"null",true等为false,别的为true
is_null
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
echo $key . '=>' . var_dump(is_null($val)) . "\r\n";
}
//以上输出 null 为true,别的全为false
别的,PHP7有一个快速推断的体式格局就是 ??和 ?:语法,这个也要多注意下
$a ?? 0; //相当于isset($a);
$a ?: 0; //相当于!empty($a);
经由过程上面的示例,应当相识这几个的差别了,在开发的时刻我们只需多注意下,就可以挑选适宜的判判函数了。
结论
isset:非 null的都为true.
empty: “” , 0 ,0.0,”0″,null,false,array(),未定义var都为true.
is_null:值为null为true.
更多PHP相干学问,请接见ki4网!
以上就是PHP的isset()、is_null、empty()运用总结的细致内容,更多请关注ki4网别的相干文章!