is_null, empty, isset, unset 我们先来看看这4个函数的描述。

isset 判断变量是否已存在(配置)
unset 把变量删除(释放)掉
empty 判断变量是否为空
is_null 判断变量是否为NULL
ok,已经开始搞人了。那么开始,这4个函数中除了unset,其他3个都是判断函数,unset首先出局,因为他不会搞错,其次是is_null,我们可以把它看成是!isset,是isset的一个逆操作,下面一张表可以很清楚的说明他们之间的关系:

复制代码代码如下:
变量                          empty          is_null          isset
 $a=””                       true               false              true
 $a=null                     true               true              false
 var $a                      true              true               false
 $a=array()               true               false              true
 $a=false                   true               false              true
 $a=15                      false              false               true
 $a=1                        false              false               true
 $a=0                        true               false               true
 $a=”0”                     true               false                true
 $a=”true”                false               false              true
 $a=”false”               false               false               true

从中我们可以发现只要变量是否为” “或者0,或者是false和null,只要是这些值empty都会返回true,而isset是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true,而is_null正好是isset的反结果。

当然如果只是想做如下工作:
echo !isset($_GET['a']);  //如果得不到变量a的值
echo empty($_GET['a']);  //如果变量a的值是空

那么结果都是一样的,都可以用。

isset 判断变量是否已存在

empty 判断变量是否为空或为0

is_null 判断变量是否为NULL

变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true

php中is_null,empty,isset,unset 的区别详细介绍的更多相关文章

  1. is_null, empty, isset, unset对比

    is_null, empty, isset, unset 我们先来看看这4个函数的描述 isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_null ...

  2. nodejs中exports与module.exports的区别详细介绍

    如果模块是一个特定的类型就用Module.exports.如果模块是一个典型的"实例化对象"就用exports. exports.name = function() { conso ...

  3. 在C和C++中struct与typedef struct的区别详细介绍

    c中测试code struct Cmstruct { int c; } Cm; // Cm是一个变量 typedef struct MyStruct //这里的 Mystruct 可以省略 { int ...

  4. is_null, empty, isset的区别

    参考博客: http://www.jb51.net/article/24666.htm http://www.jb51.net/article/36223.htm is_null, empty, is ...

  5. C++中引用与指针的区别(详细介绍)

    C++中引用与指针的区别(详细介绍) C++中的引用与指针的区别   指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一 ...

  6. bower 和 npm 的区别详细介绍

    摘要: 本文讲的是bower 和 npm 的区别详细介绍, 简单的说,npm是进行后端开发中,使用的模块安装工具,而bower,是前端的模块安装工具. 比如,在安装express,socket.io时 ...

  7. empty isset array_key_exists 的区别

    empty: 参数为0或为NULL时(如上面列子),empty均返回TRUE,详细情况可以参见empty官方手册 isset: 参数为NULL时,返回FALSE,0与NULL在PHP中是有区别的,is ...

  8. 【转】JSF中的三大核心组件 UI标签的详细介绍和使用举例

    JSF提供了大量的UI标签来简化创建视图.这些UI标签类似于ASP.NET中的服务器组件.使用这些标签,可以通过其value,binding,action,actionListener等属性直接绑定到 ...

  9. SD卡中FAT32文件格式快速入门(图文详细介绍)【转】

    本文转自:http://blog.csdn.net/mjx91282041/article/details/8904705 说明: MBR :Master Boot Record ( 主引导记录) D ...

随机推荐

  1. RowMapper使用

    public class ABRow implements RowMapper<AABB> { private String CMC; @Override public AABB mapR ...

  2. bzoj1053&&51nod1060

    题解: 其实就是求1-n之中拥有最多约数的数 一个数x的质因数分解为p1^e1*p2^e2*...*pn^en,则正因数的个数为(e1+1)(e2+1)...(en+1) 那么发现,正因数的个数和p没 ...

  3. noip2007-4

    首先预处理f[i][j]表示i到j的路径 然后枚举i,j,如果f[i][j]<=s,那么 寻找最大的k,计算路径距离 计算最短的 代码: #include<bits/stdc++.h> ...

  4. Java虚拟机运行时数据区

    运行时数据区程序计数器Java虚拟机栈本地方法栈Java堆(GC堆)方法区运行时常量池 运行时数据区 Java虚拟机在运行Java程序时,会将它所管理的内存划分为若干个内存区域.这些数据区域有各自的用 ...

  5. AngularJS中的DOM value与view value

    在看AngularJS的文档的时候经常会见到三个名词:DOM value.view value和model value. model value是模型值,view value是视图值,可这个DOM v ...

  6. oracle主从表主外键对应关系

    一.首先让我们来了解下什么是主外键? 1.主键:唯一标识数据表中的某一行 1) 一个表中只能有一个主键.如果在其他字段上建立主键,则原来的主键就会取消.在ACCESS中,虽然主键不是必需的,但最好为每 ...

  7. Alpha阶段敏捷冲刺---Day4

    一.Daily Scrum Meeting照片 二.今天冲刺情况反馈 今天我们上完课后在禹洲楼教室外进行我们的每日立会.开会的内容主要是对昨天遇到的困难做了一些交流,并且定下今天的任务是完成排行榜界面 ...

  8. centos7.5 安装 redis-4.0.11

    1.下载redis包 wget wget http://download.redis.io/releases/redis-4.0.11.tar.gz 2.解压安装 #解压 .tar.gz #安装 cd ...

  9. 在vmware中实现Ubuntu与win7(主机)之间同步实现共享文件

    作为linux的热衷者和初学者,我们在学习的过程中难免会碰到不少的问题,下面简单的介绍和总结一下,我是如何通过以下两种方法解决在vmware中实现Ubuntu与win7(主机)之间同步实现共享文件的. ...

  10. magento小常识

    magento后台设置好产品分类及添加产品后前台没有显示出来:以下几个可能: 1.首先检查网店商城的Root Category 以 及跟目录下面的子目录设置是否有误,具体在目录->管理分类-&g ...