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

目录
  • 二者共同点
  • 二者区别
  • 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:变量已设置且不为空

--结束END--

本文标题: PHP中 empty() 和 isset() 的区别介绍

本文链接: https://www.lsjlt.com/news/42.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • PHP中php://input怎么用

    php://input可以读取没有处理过的POST数据,其使用方法如“$xmldata = file_get_contents("php://input");”,用于接收xml数据。
    阅读数:735 PHP 输入流
  • openstack中php sdk php-opencloud怎么用

    这篇文章主要介绍了openstack中php sdk php-opencloud怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 openstack提供的是rest风
    阅读数:800 php api
  • php中如果删除cookie

    在php中,可以利用setcookie()函数来删除cookie,只需要将该函数的第二个参数设置为空,或者第三个参数设置为小于系统的当前时间即可。
    阅读数:934 php cookie
  • php中exec返回什么

    在PHP中,exec()函数返回命令执行结果的最后一行内容。该函数用于执行一个外部程序,当指定函数的output参数时,会使用返回结果填充output,若output参数中已经有了元素,exec函数会在output后面追加。
    阅读数:860 php
  • php中continue怎么用

    在php中,continue关键字是用在循环结构中的,可以控制程序放弃本次循环中continue语句之后的代码并进行下一次循环;continue还可以接受一个可选的数字参数来决定跳过几重循环的循环末尾,默认值是1,即跳到当前循环的末尾。
    阅读数:118 php continue
  • php中.=什么意思

    php中“.=”表示赋值运算符,是字符串连接的意思,该运算符的使用语法如“$string .= string2;”,可以实现字符串拼接效果。
    阅读数:179 php
  • .= php中是啥意思

    .=在php中是一种赋值运算符,用于连接两个字符串,比如表达式“a .= b”也就是表达式“a = a . b”的意思。
    阅读数:782 .=
  • php中怎么定义类

    在php中,可以使用class关键字加类名的方式来定义一个类,并用大括号“{}”将在类体中定义类的属性和方法包裹起来,语法“[修饰类的关键字] class 类名{类的属性和方法;}”。
    阅读数:155 php 定义类
  • PHP中怎么连接MSSQL

    今天就跟大家聊聊有关PHP中怎么连接MSSQL,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  PHP连接MSSQL的实现方法。ms SQL是指微软的SQLServer数据库服务器,
    阅读数:171 php mssql
  • php中怎么创建ODBC

    本篇内容介绍了“php中怎么创建ODBC”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ODBC 是一种应用程序编程接口(Applicatio
    阅读数:299 odbc php
  • php中怎么设置时区

    今天就跟大家聊聊有关php中怎么设置时区,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP中设置时区方法小结代码如下:? date_default_timezone_set(PR
    阅读数:729 php
  • LAMP中如何编译PHP

    这篇文章给大家分享的是有关LAMP中如何编译PHP的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. [root@KAKA php-5.3.27]# ./configure --prefix=/usr/local
    阅读数:748 php lamp
  • php中list怎么用

    这篇文章将为大家详细讲解有关php中list怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。list妙用//妙用一list($a,$b) = [$b,$a];//妙用二list(,$fn) =
    阅读数:868 php list
  • PHP中如何修改Cookie

    本篇内容主要讲解“PHP中如何修改Cookie”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中如何修改Cookie”吧!什么是 Cookie?cookie通常用于识别用户。cookie是服
    阅读数:924 php cookie
  • php中什么是关联数组

    在php中,关联数组是值以字符串或字符串、数字混合为键名的数组;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。关联数组的键名可以是任何一个整数或字符串;如果键名是一个字符串,则要给这个键名加上一个定界修饰符:单引号“''”或双引号“""”。
    阅读数:867 php php数组
  • php中$this是啥意思

    在php中,“$this”的意思为“当前对象”,它是指向当前对象实例的指针,与连接符“->”联合使用,专门用来完成对象内部成员之间的访问;语法“$this -> 成员属性;”或“$this -> 成员方法(参数列表);”。
    阅读数:737 php $this
  • php中变量的设置方法

    php中变量的设置方法:1、创建一个PHP示例文件;2、通过“$符号+变量名称”的方式设置变量,代码如“$txt="Hello world!";”。
    阅读数:413 php
  • PHP中feof 什么意思

    PHP中feof是一个用于检测是否已到达文件末尾的函数,其使用语法是“feof(file)”,其中参数file规定了要检查的打开文件。
    阅读数:639 PHP feof
  • php中fetch什么意思

    php中fetch指的是查询数据的fetch方法,php中常用的fetch方法是mysqli_fetch_assoc、mysqli_fetch_row、mysqli_fetch_array、mysqli_fetch_object。
    阅读数:370 php fetch
  • php中403是什么报错

    php中403报错的解决办法:1、打开apache的配置文件httpd.conf;2、修改内容为“allow from all”;3、保存配置文件即可。
    阅读数:654 php 403