PHP中 empty() 和 isset() 的区别介绍

PHP中empty()和isset()的区别介绍

PHP中常用的判断变量是否为空的Empty()和isset(),其实在很多方面都是不同的。本文将为您详细介绍它们的不同之处,有需要的朋友可以看看。

目录

有共同点,但又各不相同。1.未设置变量的判断2、判断 (空字符串)3、判断0 (0为整数)4、判断0.0 (0为浮点数)5、判断 0 (0为字符串)6、判断NULL 7、判断FALSE 8。

二者共同点

可以判断一个变量是否为空;

两者都返回布尔类型,即true或false。

二者区别

函数的作用是:检查一个变量是否为空。当一个变量不存在,或者它的值等于FALSE,那么它将被认为是不存在的。如果变量不存在,Empty()不会生成警告。

isset()函数用于检测一个变量是否已经被设置并且不为空。如果你用unset()释放了一个变量,用isset()判断会返回FALSE。如果isset()用于测试设置为NULL的变量,它将返回FALSE。还要注意,空字符( )不等同于PHP的空常量。

在0、false、空字符串、空数组的判断上,empty()可以识别为空,isset()则不能。

1、对于未设置的变量的判断

//未设置变量的判断

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量未设置或为空。

2、对于 "" (空字符串) 的判断

//判断为“”(空字符串)

$ a=“”;

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

3、对于 0 (作为整数的0) 的判断

//判断为0 (0为整数)

$ a=0;

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

4、对于 0.0 (作为浮点数的0) 的判断

//判断为0.0 (0为浮点数)

$ a=0.0

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

5、对于 "0" (作为字符串的0) 的判断

//判断为“0”(0为字符串)

$ a=“0”;

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

6、对于 NULL 的判断

NULL的判断

$ a=null

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量未设置或为空。

7、对于 FALSE 的判断

//判断为假

$ a=false

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

8、对于 array() (一个空数组) 的判断

//array()的判断(空数组)

$ a=array();

if (empty($a)) {

回显“empty:变量为空”。br ;

}否则{

回显“empty:变量不为空”。br ;

}

if(isset $ a)){

echo“isset:变量已设置且不为空”。br ;

}否则{

Echo isset:变量未设置或变量为空。br ;

}

# #结果

Empty:变量为空。

Isset:变量已设置且不为空。

PHP中 empty() 和 isset() 的区别介绍