首页 > 编程语言 >PHP中 empty() 和 isset() 的区别介绍

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

时间:2023-02-05 20:45:37浏览次数:43  
标签:变量 echo else 为空 PHP isset empty

目录
  • 二者共同点
  • 二者区别
  • 1、对于未设置的变量的判断
  • 2、对于 "" (空字符串) 的判断
  • 3、对于 0 (作为整数的0) 的判断
  • 4、对于 0.0 (作为浮点数的0) 的判断
  • 5、对于 "0" (作为字符串的0) 的判断
  • 6、对于 NULL 的判断
  • 7、对于 FALSE 的判断
  • 8、对于 array() (一个空数组) 的判断 

 

二者共同点

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

都返回boolean类型,即true或false。

 

二者区别

empty() 函数用于检查一个变量是否为空。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

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

 

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


// 对于未设置的变量的判断
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
     echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量未设置或变量为空

 

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


// 对于 "" (空字符串) 的判断
$a = "";
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

 

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


// 对于 0 (作为整数的0) 的判断
$a = 0;
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

 

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


// 对于 0.0 (作为浮点数的0) 的判断
$a = 0.0;
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

 

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


// 对于 "0" (作为字符串的0) 的判断
$a = "0";
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

 

6、对于 NULL 的判断


// 对于 NULL 的判断
$a = null;
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量未设置或变量为空

 

7、对于 FALSE 的判断


// 对于 FALSE 的判断
$a = false;
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

 

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


// 对于 array() (一个空数组) 的判断
$a = array();
if (empty($a)) {
    echo "empty:变量为空" . "<br>";
} else {
    echo "empty:变量不为空" . "<br>";
}
if (isset($a)) {
    echo "isset:变量已设置且不为空" . "<br>";
} else {
    echo "isset:变量未设置或变量为空" . "<br>";
}
##结果
empty:变量为空
isset:变量已设置且不为空

标签:变量,echo,else,为空,PHP,isset,empty
From: https://www.cnblogs.com/dituirenwu/p/17093906.html

相关文章

  • php去掉一维数组的键值的实例方法
    在PHP中,数组的每个元素都是由键值对(key-value)组成,通过元素的键名来访问对应键的值。提示:“索引”和“键名”指的是同一样东西,“索引”多指数组数字形式的下标。有时......
  • php7 安装mysqli实例讲解
    php7怎么安装Mysqli?Centosphp7安装mysqli扩展心得在新配服务器时发现,php无法连接到mysql。通过phpinfo发现。根本没有显示mysqli的相关配置。经过一系列研究。总结了......
  • PHP实现JWT的Token登录认证
    1、Jwt简介JSONWEBToken(缩写JWT),是目前最流行的跨域认证解决方案。session登录认证方案:用户从客户端传递用户名、密码等信息,服务端认证后将信息存储在session中,将sessi......
  • PHP7 preg_replace 出错及解决办法
    问题描述:PHP7废弃了preg_replace?原本是中php5中处理url中后面参数替换清除的,代码如下$url=preg_replace('/([?&])src=[^&]+(&?)/e','"$2"==""?"":"$1"',$url);但......
  • php实现ffmpeg处理视频的实践
    最近有一个项目需要使用FFmpeg处理视频,这里我写了一个demo,方便我们来实现视频操作ffmpeg操作demo<?PHPnamespace common\helpers;use common\models\Config;use ......
  • php中的标量数据类型总结
    php的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。其中,标量数据类型是数据结构的最基础单元,只能存储一个数据。在 php 中的标量数据类型分......
  • PHP中最低级别的错误类型总结
    php的错误有很多种,包括warning、notice、deprecated、fetalerror等。其中notice不叫通知,而叫通知级别的错误,warning也不叫警告,而叫警告级别的错误。错误大致分为下面几个......
  • mac m1 安装php扩展
    安装xdebug进入https://pecl.php.net/package/Xdebug选择对应的版本下载php8.0下载xdebug-3.2.0.tgz解压tar-zxvfxdebug-3.2.0.tgz进入解压目录执行phpi......
  • ThinkPHP6.0 模型搜索器的使用
    搜索器用于封装查询条件表达式,必须在模型中定义,只有使用模型操作数据时才能用搜索器。调用搜索器时使用的是数据表字段,可以不用定义搜索器方法,默认是=条件;如果不是数据......
  • 群晖 WebStation PHP 使用 curl 进行 http 请求(群晖 WebStation php 安装第三方库)
    在群晖中,安装WebStation后,在安排配置PHP后,发现编写的php文件中有很多第三方库是无法适用的,运行就是500错误页面。遇到这种情况,我们需要为php添加对应的脚本库,具体......