目录
在PHP中,is_null
、empty
和 isset
是三个用于检查变量状态的常用函数,它们各自有不同的用途和行为:
1.isset()
:
isset()
函数用来检查一个变量是否已设置并且非null
。- 如果变量存在并且已经被初始化(即不是
null
),isset()
返回true
。 - 如果变量未定义或其值为
null
,isset()
返回false
。
代码示例:
$var = null;
if (isset($var)) {
echo "变量已设置";
} else {
echo "变量未设置";
}
// 输出:变量未设置
2.empty()
:
empty()
函数用来检查一个变量是否为空。- 如果变量的值被认为是“空”的(例如
""
空字符串、0
、0.0
、"0"
、null
、false
、未定义的变量),empty()
返回true
。 - 如果变量非空,
empty()
返回false
。
代码示例:
$var = null;
if (empty($var)) {
echo "变量为空";
} else {
echo "变量非空";
}
// 输出:变量为空
3.is_null
:
is_null()
函数用来检查一个变量是否严格等于null
。- 只有当变量的值严格为
null
时,is_null()
才返回true
。
代码示例:
$var = null;
if ($var === null) {
echo "变量的值为null";
} else {
echo "变量的值不是null";
}
// 输出:变量的值为null
4.总结:
isset()
检查变量是否已设置且不是null
。empty()
检查变量是否为空,包括null
、false
、0
、空字符串等。is_null()
严格检查变量是否等于null
。
在实际编程中,根据需要检查的条件不同,你可能会使用这三个函数中的一个或多个。例如,如果你想确保一个变量不仅已设置,而且有非空的值,你可以结合使用 isset()
和 empty()
:
if (isset($var) && !empty($var)) {
// 变量已设置且非空
}
如果你想检查一个变量是否为 null
或者为空字符串,你可以结合使用 is_null()
和 empty()
:
if (is_null($var) || $var === "") {
// 变量的值为null或空字符串
}
以下用一张表搞清楚is_null、empty、isset的区别
变量 | is_null | empty | isset |
$a="" | false | true | true |
$a=" " | false | false | true |
$a=null | true | true | false |
$a | true | true | false |
$a=array() | false | true | true |
$a=false | false | true | true |
$a=8 | false | false | true |
$a=1 | false | false | true |
$a=0 | false | true | true |
$a="0" | false | true | true |
$a="true" | false | false | true |
$a="false" | false | false | true |