empty -- 检查一个变量是否为空
bool empty ( mixed var )

如果 var 是非空或非零的值,则 empty() 返回 FALSE 。换句话说,""0"0"NULLFALSEarray()var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

empty() 与 isset() 的一个简单比较


<?php
$var = 0;// 结果为 true,因为 $var 为空
if (empty($var)) {  echo '$var is either 0 or not set at all';
}// 结果为 false,因为 $var 已设置
if (!isset($var)) {echo '$var is not set at all';
}
?>

empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))

isset -- 检测变量是否设置
bool isset ( mixed var [, mixed var [, ...]] )如果 var 存在则返回 TRUE , 否则返回 FALSE

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

isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

<?php$var = '';// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {print "This var is set set so I will print.";
}// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。$a = "test";
$b = "anothertest";var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUEunset ($a);var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE$foo = NULL;
var_dump( isset ($foo) );   // FALSE?>

对于数组中的元素也同样有效

<?php$a = array ('test' => 1, 'hello' => NULL);var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE// 键 'hello' 的值等于 NULL,所以被认为是未置值的。
// 如果想检测 NULL 键值,可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE?>

is_null --  检测变量是否为 NULL
bool is_null ( mixed var )
如果 varnull 则返回 TRUE ,否则返回 FALSE

总结:
empty在变量为null,0,"",'0',null,array()返回true
isset在判断null时返回false
is_null只要是null返回true,否则返回false

理解了这些,这三个函数足以区别开来了.

Comparisons of $x with PHP functions
Expression gettype() empty() is_null() isset() boolean : if($x)
$x = “”; string TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = “1″; string FALSE FALSE TRUE TRUE
$x = “0″; string TRUE FALSE TRUE FALSE
$x = “-1″; string FALSE FALSE TRUE TRUE
$x = “php”; string FALSE FALSE TRUE TRUE
$x = “true”; string FALSE FALSE TRUE TRUE
$x = “false”; string FALSE FALSE TRUE TRUE

PHP中empty,is_null,isset中的异同和功能相关推荐

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

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

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

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

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

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

  4. php中empty与isset的区别,再谈php中empty与isset区别详解

    empty与isset在php中一个是为空,另一个判断是是否为一个存在的变量了,下面小编来给各位同学介绍php中empty与isset区别,欢迎各位同学进入参考. empty是判断变量值是非空或非零的 ...

  5. php中empty()和isset()、echo()和print()、require()和include()等易混淆函数的区别

    1.echo和print的区别 PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以 ...

  6. PHP 中 empty is_null 和 isset 的测试

    代码如下: <?php$a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); 首先是empty的var_dump输出: boolean ...

  7. php中empty和isset的用法

    今天在编写登入程序的时候,写了如下的代码 if (isset($_POST['username']) && isset($_POST['password'])) { 一看大致就会明白我 ...

  8. ***PHP中empty()和isset()的区别

    对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚. 先说一下他们的共同点: 都可以判定一个变量是否为空: 都返回bool ...

  9. PHP中 empty() 和 isset() 的区别

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

最新文章

  1. CIO职业生涯如何进行三级跳
  2. 8 个你必须要掌握的 GitHub 实用技巧!
  3. Part8 多态性 8.1运算符重载
  4. java8-02-Stream-API
  5. SpingMVC 执行的流程
  6. Scala的partition函数
  7. 我的世界等价交换卡服务器物品,【推荐服务器】等价交换|加速火把|工业|神秘|植物|AE|食物工艺等......
  8. 广州大学计算机科学与技术学科评估,省名牌专业评估专家评估我校计算机科学与技术专业...
  9. input中autocomplete属性
  10. 利用ESXI-Customizer制作定制化的ESXI
  11. Deep Learning 论文笔记 (3): Deep Learning Face Attributes in the Wild
  12. 手动抛出异常_超实用:关于Java异常设计和处理
  13. java map存储格式_java HashMap HashSet的存储方式
  14. nx531j android版本,努比亚Z11(NX531J)官方固件rom全量系统升级更新包:V2.92
  15. 传奇私服架设微端搭建教程
  16. Docker managed volume
  17. HelloWord代码
  18. 职场常用的办公软件,操作很方便
  19. 计算机理论导引第三版答案第四章,《计算理论导引》第四章:可判定性-学习笔记 | 诟屍...
  20. 接口测试的几个小技巧

热门文章

  1. 7 MM配置-企业结构-分配-给工厂分配采购组织
  2. 怎么查linux上谁删了文件,如何在 Linux 下快速找到被删除的文件?
  3. iphone字体大小设置_Win10电脑桌面上使用的记事本便签软件字体大小怎么调整?...
  4. OpenGL:freeglut ERROR: Function <glutCreateWindow> called without first calling ‘glutInit‘.
  5. 软件定义存储相比传统存储系统的优势
  6. CUDA bank 及bank conflict
  7. CUDA 网格级并发-流(2)
  8. OpenCV稀疏矩阵SparseMat
  9. 浅谈OpenCL之API分类
  10. 图像质量评价指标: PSNR 和 SSIM