在php中empty() isset() is_null()三个函数都是判断是否为空的情况,但是如果我个要具体的深入去了解这个三个函数发现还是有许多的区别.

is_null(), empty(), isset(),这几个函数以及 == ”,== array() 会在实际操作中经常用到,因为功能很类似,可能会忽视了他们的区别,一不小心就会给工作带来很大的麻烦,下面将这几种结构列出来,供自己和大家参考,鉴于表述的准确性,部分解释来自英文原版手册,避免中文手册的更新不及时以及翻译不当等问题。

is_null()

is_null(),bool,当参数满足 null 的三种情况时,is_null() 将返回 TRUE。

null类型,以下情况将被认定为 NULL:

it has been assigned the constant NULL.

it has not been set to any value yet.

it has been unset().

source:http://cn2.php.net/manual/en/language.types.null.php

isset()

isset(),bool,用于判定参数是否被设定并且不是 NULL。参数只能是变量。

如果没有设置变量,或者变量被 unset() 掉,或者变量值为 NULL ,返回 FALSE,其它情况返回 TRUE。即如果不是 NULL 就属于 isset 的范畴了,这一点和 is_null() 函数正好相反。

如果传递多个参数,将取交集。即所有参数全部符合 isset() 时才返回 TRUE。

ps:defined(),bool,用于检查常量是否被设置。

source:http://cn2.php.net/manual/en/function.isset.php

empty()

empty(),bool,主要用于判断变量是否为空,参数只能是变量。

如下情况将被判定位空,代码如下:

“” (an empty string)

0 (0 as an integer)

0.0 (0 as a float)

“0″ (0 as a string)

NULL

FALSE

array() (an empty array)

var $var; (a variable declared, but without a value in a class)

注:如果参数是未设置的变量,变量将被认定为 NULL,不会报错,返回 TRUE。

但是注意在 5.0.0 之后,Objects with no properties are no longer considered empty.

source:http://cn2.php.net/manual/en/function.empty.php

判定是否为空的方式还有 ==”,== array() 等,比较有局限性,都没什么好说的,测试的类型如下:

$a;

$b= false;

$c='';

$d= 0;

$e= null;

$f=array();

?>

empty()

首先是empty的var_dump输出:

var_dump(emptyempty($a));

var_dump(emptyempty($b));

var_dump(emptyempty($c));

var_dump(emptyempty($d));

var_dump(emptyempty($e));

var_dump(emptyempty($f));

?>

/*

程序输出为:

bool(true)

bool(true)

bool(true)

bool(true)

bool(true)

bool(true)

*/

从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。

isset()

再看看isset的输出:

var_dump(isset($a));

var_dump(isset($b));

var_dump(isset($c));

var_dump(isset($d));

var_dump(isset($e));

var_dump(isset($f));

/* 输出

bool(false)

bool(true)

bool(true)

bool(true)

bool(false)

bool(true)

*/

可以看出isset()只能用来判断是否为NULL和未定义。

is_null()

最后是is_null的输出:

var_dump(is_null($a));

var_dump(is_null($b));

var_dump(is_null($c));

var_dump(is_null($d));

var_dump(is_null($e));

var_dump(is_null($f));

/*输出

bool(true)

bool(false)

bool(false)

bool(false)

bool(true)

bool(false)

*/

is_null 字面意思了。

由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。

概括总结isset,empty,is_null区别:

刚才介绍的:检查变量,以及参数类型,这个是这3个函数不同之处的基础,也是最容易被忽视的,看到网上有很多对这个3个函数进行比较文章,很少涉及这些,下面我要说的,是在都检查已存在变量情况下,不同之处,代码如下:

$a=100;

$b="";

$c=null;

//isset检查

echo"isset","$a=$a",isset($a)?"define":"undefine","rn";

echo"isset","$b=$b",isset($b)?"define":"undefine","rn";

echo"isset","$c=$c",isset($c)?"define":"undefine","rn";

unset($b);

echo"isset","$b",isset($b)?"define":"undefine","rn";

$b=0;

echo"rnrn";

//empty检查

echo"empty","$a=$a",!emptyempty($a)?"no empty":"empty","rn";

echo"empty","$b=$b",!emptyempty($b)?"no empty":"empty","rn";

echo"empty","$c=$c",!emptyempty($c)?"no empty":"empty","rn";

unset($b);

echo"empty","$b",!emptyempty($b)?"no empty":"empty","rn";

$b=0;

echo"rnrn";

//is_null检查

echo"is_null","$a=$a",!is_null($a)?"no null":"null","rn";

echo"is_null","$b=$b",!is_null($b)?"no null":"null","rn";

echo"is_null","$c=$c",!is_null($c)?"no null":"null","rn";

unset($b);

echo"is_null","$b",is_null($b)?"no null":"null","rn";

(责任编辑:admin)

php is_null(,PHP empty() isset() is_null() 区别与性能比较相关推荐

  1. php is_null和empty,php empty,isset,is_null判断比较(差异与异同)

    一.举例说明 A.一个变量没有定义,我们该怎么样去判断呢 复制代码代码如下: #不存在$test变量 $isset=isset($test)?"testisdefine!":&qu ...

  2. php empty,isset,is_null比较

    变量 empty is_null isset $a="" true false true $a=null true true false $a=array() true false ...

  3. PHP的empty isset is_null

    isset()函数用来检测一个变量是否已声明并且值不为NULL,也就是说只有在值不为NULL时返回真值 is_null()用来判断变量内容是否是null值,返回真值的条件仅仅是变量为null时,所以他 ...

  4. php中empty(), is_null(), isset()函数区别

    empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...

  5. php中is null,php中empty(), is_null(), isset()函数区别

    empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...

  6. isset和empty以及is_null区别

    注:根据时长用到的,本篇着重isset和empty. 1.当变量未定义时,is_null()和"参数本身"是不允许作为参数判断的,会报Notice警告错误: 2.empty,iss ...

  7. PHP is_null,empty以及isset,unset的区别

    1.empty 判斷一個變量是否為"空". null.false.00.0.'0′.』.為以上值的變量在檢測時都將返回true. 2.isset 判斷一個變量是否已經設置. 0.0 ...

  8. PHP中empty,is_null,isset的区别

    isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE. empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE.换句话说,&qu ...

  9. empty 和 isset 的区别

    empty和isset的区别. 1.empty 判断一个变量是否为空 null.false.00.0.'0′.』.都会返回true. 2.isset 判断一个变量是否设置 0.00.'0′.』.' ' ...

最新文章

  1. 【ACM】POJ 1664
  2. 值得mark的11个开源机器学习项目 .
  3. 【记录】常用的vim插件及配置和使用
  4. matlab相机标定_【显微视界】基于视觉伺服的工业机器人系统研究(摄像机标定、手眼标定、目标单目定位)...
  5. C# 参考之方法参数关键字:params、ref及out (收集)
  6. 20101022网站更新部署
  7. 染色(方法:要统计每个数出现的次数,而这个数很大,用数组存不了,怎么弄?)
  8. git中clone出来项目,导入到eclipse并运行web项目
  9. 书中的银行,我们一起奋斗的C#,只因乐在其中~
  10. matlab自适应遗传算法代码,matlab自适应遗传算法
  11. Codejock Suite Pro _16.3.X.国内最新版来了!
  12. 【光学】(杨氏双缝+劈尖)干涉+(单缝+多缝+圆孔+矩孔)衍射仿真matlab源码含GUI
  13. 软件测试工程师调研报告,软件测试工程师竞聘报告范文.docx
  14. 图片怎么转文字?建议收藏这些方法
  15. 将DVD中的VOB文件无损转换为MP4等常用视频格式的方法
  16. AD软件PCB快捷键
  17. Springboot 整合 Current-Limiting 实现接口限流
  18. DirectShow2
  19. 用于高频接收器和发射器的锁相环(PLL)——第一部分 PLL的基本概念
  20. 卷土重来的FCoin日本站,你被割了吗?

热门文章

  1. matlab图片压缩
  2. vue项目使用webSocket前后端建立连接推送消息
  3. java nio is例子,Java Buffer isDirect()用法及代码示例
  4. 风格迁移应用_图像也能做情感迁移?罗切斯特大学团队提出计算机视觉新任务...
  5. Java基本类型练习1
  6. Linux/Centos Tomcat 配置日志切分以及脚本自动清理
  7. Citrix XenApp应用虚拟化之RTX串号问题解决
  8. python连接中控考勤机分析数据
  9. Linux下面makefile编写
  10. \Grokking Algorithms\简介与作者采访