PHP中empty,isset,is_null用法和区别


Posted in PHP onFebruary 19, 2017

1.empty用法

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

2.isset()

isset -- 检测变量是否设置

描述
bool isset ( mixed var [, mixed var [, ...]])
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("0")并不等同于 PHP 的 NULL 常数。

注意:如果变量不存在,isset()和empty()都不会报错;is_null(),is_numeric()会报错

如何区别如下数组中 [0,'',null] 三个元素?(1)区别0:

$a = 0;
isset($a) && is_numeric($a) === true

(2)区别''

$a = '';
empty($a) && $a=== ''

(3)区别null

$a = null;
is_null($a);

另外在做表单提交的时候可能经常要检测一个变量是否存在,假如$_REQUEST['status'] = 0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status']) 判断就不是空

3. is_null():

bool is_null ( mixed $var )   (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:

$myvar = NULL;  
var_dump(is_null($myvar)); // TRUE 
$myvar1;      
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable 
$num = 520; 
unset($num); 
var_dump(is_null($num)); //TRUE Notice: Undefined variable 
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable 
 
$myvar = 0; is_null($myvar);   // FALSE 
$myvar = FALSE; is_null($myvar); // FALSE 
$myvar = ''; is_null($myvar);  // FALSE
PHP 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
PHP最常用的正则表达式
Feb 13 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP7修改的函数
Mar 09 PHP
简单谈谈 php 文件锁
Feb 19 #PHP
PHP new static 和 new self详解
Feb 19 #PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 #PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 #PHP
PHP进程通信基础之信号
Feb 19 #PHP
PHP 信号管理知识整理汇总
Feb 19 #PHP
php 三大特点:封装,继承,多态
Feb 19 #PHP
You might like
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
JavaScript 大数据相加的问题
2011/08/03 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
javascript的几种写法总结
2016/09/30 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
django rest framework 过滤时间操作
2020/07/12 Python
介绍java中初始化块的使用
2012/09/11 面试题
高中自我评价分享
2013/12/05 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
科级干部考察材料
2014/02/15 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
文明社区申报材料
2014/08/21 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
活动新闻稿范文
2015/07/17 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis