PHP中empty,is_null,isset中的异同和功能
empty -- 检查一个变量是否为空
bool empty ( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE 。换句话说,"" 、0 、"0" 、NULL 、FALSE 、array() 、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 )
如果 var 是 null 则返回 TRUE ,否则返回 FALSE 。
总结:
empty在变量为null,0,"",'0',null,array()返回true
isset在判断null时返回false
is_null只要是null返回true,否则返回false
理解了这些,这三个函数足以区别开来了.
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中的异同和功能相关推荐
- php中empty(), is_null(), isset()函数区别
empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...
- php中is null,php中empty(), is_null(), isset()函数区别
empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...
- PHP中empty,is_null,isset的区别
isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE. empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE.换句话说,&qu ...
- php中empty与isset的区别,再谈php中empty与isset区别详解
empty与isset在php中一个是为空,另一个判断是是否为一个存在的变量了,下面小编来给各位同学介绍php中empty与isset区别,欢迎各位同学进入参考. empty是判断变量值是非空或非零的 ...
- php中empty()和isset()、echo()和print()、require()和include()等易混淆函数的区别
1.echo和print的区别 PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以 ...
- PHP 中 empty is_null 和 isset 的测试
代码如下: <?php$a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); 首先是empty的var_dump输出: boolean ...
- php中empty和isset的用法
今天在编写登入程序的时候,写了如下的代码 if (isset($_POST['username']) && isset($_POST['password'])) { 一看大致就会明白我 ...
- ***PHP中empty()和isset()的区别
对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚. 先说一下他们的共同点: 都可以判定一个变量是否为空: 都返回bool ...
- PHP中 empty() 和 isset() 的区别
区别: empty() 函数用于检查一个变量是否为空.当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在.如果变量不存在的话,empty()并不会产生警告. isset() 函数用 ...
最新文章
- CIO职业生涯如何进行三级跳
- 8 个你必须要掌握的 GitHub 实用技巧!
- Part8 多态性 8.1运算符重载
- java8-02-Stream-API
- SpingMVC 执行的流程
- Scala的partition函数
- 我的世界等价交换卡服务器物品,【推荐服务器】等价交换|加速火把|工业|神秘|植物|AE|食物工艺等......
- 广州大学计算机科学与技术学科评估,省名牌专业评估专家评估我校计算机科学与技术专业...
- input中autocomplete属性
- 利用ESXI-Customizer制作定制化的ESXI
- Deep Learning 论文笔记 (3): Deep Learning Face Attributes in the Wild
- 手动抛出异常_超实用:关于Java异常设计和处理
- java map存储格式_java HashMap HashSet的存储方式
- nx531j android版本,努比亚Z11(NX531J)官方固件rom全量系统升级更新包:V2.92
- 传奇私服架设微端搭建教程
- Docker managed volume
- HelloWord代码
- 职场常用的办公软件,操作很方便
- 计算机理论导引第三版答案第四章,《计算理论导引》第四章:可判定性-学习笔记 | 诟屍...
- 接口测试的几个小技巧
热门文章
- 7 MM配置-企业结构-分配-给工厂分配采购组织
- 怎么查linux上谁删了文件,如何在 Linux 下快速找到被删除的文件?
- iphone字体大小设置_Win10电脑桌面上使用的记事本便签软件字体大小怎么调整?...
- OpenGL:freeglut ERROR: Function <glutCreateWindow> called without first calling ‘glutInit‘.
- 软件定义存储相比传统存储系统的优势
- CUDA bank 及bank conflict
- CUDA 网格级并发-流(2)
- OpenCV稀疏矩阵SparseMat
- 浅谈OpenCL之API分类
- 图像质量评价指标: PSNR 和 SSIM