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 相关文章推荐
PHP学习 运算符与运算符优先级
Jun 15 PHP
php csv操作类代码
Dec 14 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
php生成静态页面并实现预览功能
Jun 27 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
我的论坛源代码(二)
2006/10/09 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
js对象的比较
2011/02/26 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python调用java的Webservice示例
2014/03/10 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Django 返回json数据的实现示例
2020/03/05 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
商得四方公司面试题(gid+)
2014/04/30 面试题
迅雷Cued工作心得体会
2014/01/27 职场文书
小学校园活动策划
2014/01/30 职场文书
一分钟演讲稿
2014/04/30 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python