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 discuz 主题表和回帖表的设计
Mar 13 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
php操作mongoDB实例分析
Dec 29 PHP
Laravel实现用户注册和登录
Jan 23 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
PHP中散列密码的安全性分析
Jul 26 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封装的连接Mysql类及用法分析
2015/12/10 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
Python删除空文件和空文件夹的方法
2015/07/14 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
python树莓派红外反射传感器
2019/01/21 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
logging level级别介绍
2020/02/21 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
名人演讲稿范文
2013/12/28 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
车辆工程专业求职信
2014/04/28 职场文书
抗震救灾标语
2014/06/26 职场文书
收款委托书范本
2014/09/11 职场文书
元旦标语大全
2014/10/09 职场文书
国富论读书笔记
2015/06/26 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis