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

 更新时间:2022-01-27 14:12:18   作者:佚名   我要评论(0)

目录二者共同点二者区别1、对于未设置的变量的判断2、对于 "" (空字符串) 的判断3、对于 0 (作为整数的0) 的判断4、对于 0.0 (作为浮点数的0

二者共同点

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

都返回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:变量已设置且不为空

您可能感兴趣的文章:
  • PHP isset()及empty()用法区别详解
  • PHP isset()与empty()的使用区别详解
  • php empty()与isset()区别的详细介绍
  • PHP isset()与empty()的使用区别详解

相关文章

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

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

    目录二者共同点二者区别1、对于未设置的变量的判断2、对于 "" (空字符串) 的判断3、对于 0 (作为整数的0) 的判断4、对于 0.0 (作为浮点数的0
    2022-01-27
  • 新版php?study根目录下文件夹无法显示的图文解决方法

    新版php?study根目录下文件夹无法显示的图文解决方法

    ?Options Indexes FollowSymLinks ExecCGI? ? ? ? ? 1? 添加Indexes 2? 删除掉index.html? ? 希望可以帮到大家。? ? ? 到此这篇关于新版php
    2022-01-27
  • PHP实现JWT的Token登录认证

    PHP实现JWT的Token登录认证

    1、JWT简介 JSON Web Token(缩写 JWT),是目前最流行的跨域认证解决方案。 session登录认证方案:用户从客户端传递用户名、密码等信息,服
    2022-01-27
  • php项目接入xxl-job调度系统的示例详解

    php项目接入xxl-job调度系统的示例详解

    目录1.?部署xxl-job调度中心2. 整合xxl-job调度系统2.1 创建执行器项目2.2 新增执行器?2.3 部署执行器项目2.4 新增GLUE模式任务2.5 编写php代
    2022-01-27
  • php判断时间戳是否为今天实例讲解

    php判断时间戳是否为今天实例讲解

    ?本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑 php判断指定时间戳是不是今天的方法 实现思想: 使用date()格式化今天的日期,
    2022-01-27
  • PHP基础用法讲解及phpinfo();演示

    PHP基础用法讲解及phpinfo();演示

    在这个abc.php文件中写入如下代码。 <&#63;php phpinfo(); &#63;> 你将会看到一个网页,网页内容通常,如下图所示: 用中文翻译这句
    2022-01-27
  • PHP7 preg_replace 出错及解决办法

    PHP7 preg_replace 出错及解决办法

    问题描述: PHP7废弃了preg_replace? 原本是中php5中处理url中后面参数替换清除的,代码如下 $url = preg_replace('/([&#63;&])src=[^&]+
    2022-01-27
  • php实现ffmpeg处理视频的实践

    php实现ffmpeg处理视频的实践

    最近有一个项目需要使用ffmpeg处理视频,这里我写了一个demo,方便我们来实现视频操作 ffmpeg操作demo <&#63;php namespace common\helpe
    2022-01-27
  • php7 没有phpize的解决方法

    php7 没有phpize的解决方法

    本文操作环境:ubuntu 16.04系统、PHP7.0版、DELL G3电脑 php7 没有phpize怎么办? ubuntu服务器下php7没有phpize文件解决方案 第一种: s
    2022-01-27
  • php缓存的类型总结及用法

    php缓存的类型总结及用法

    一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,应用服务器做一些计算和逻辑判断之后再请求数据库,数据库收到请求后在经过计
    2022-01-27

最新评论