PHP中判断变量为空的几种方法小结


Posted in PHP onNovember 12, 2013

1. isset功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

2. empty功能:检测变量是否为"空"

说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串"" 或 null的变量、空数组、没有任何属性的对象,都将判断为empty==true
注意1:未初始化的变量也能被empty检测为"空"
注意2:empty只能检测变量,而不能检测语句

$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 为空' . "";
if (empty($b)) echo '$b 为空' . "";
if (empty($c)) echo '$c 为空' . "";
if (empty($d)) echo '$d 为空' . "";

3. var == null功能:判断变量是否为"空"

说明:值为 0 或 false 或 空字符串"" 或 null的变量、空数组、都将判断为 null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

$a = 0;
$b = array();
if ($a == null) echo '$a 为空' . "";
if ($b == null) echo '$b 为空' . "";
if ($c == null) echo '$b 为空' . "";
// 显示结果为
// $a 为空
// $b 为空
// Undefined variable: c

4. is_null功能:检测变量是否为"null"

说明:当变量被赋值为"null"时,检测结果为true
注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别
注意2:仅在变量的值为"null"时,检测结果才为true,0、空字符串、false、空数组都检测为false
注意3:变量未初始化时,程序将会报错

$a = null;
$b = false;
if (is_null($a)) echo '$a 为NULL' . "";
if (is_null($b)) echo '$b 为NULL' . "";
if (is_null($c)) echo '$c 为NULL' . "";
// 显示结果为
// $a 为NULL
// Undefined variable: c

5. var === null功能:检测变量是否为"null",同时变量的类型也必须是"null"

说明:当变量被赋值为"null"时,同时变量的类型也是"null"时,检测结果为true
注意1:在判断为"null"上,全等于和is_null的作用相同
注意2:变量未初始化时,程序将会报错

总结PHP中,"NULL" 和 "空" 是2个概念。

isset  主要用来判断变量是否被初始化过
empty  可以将值为 "假"、"空"、"0"、"NULL"、"未初始化" 的变量都判断为TRUE
is_null  仅把值为 "NULL" 的变量判断为TRUE
var == null  把值为 "假"、"空"、"0"、"NULL" 的变量都判断为TRUE
var === null  仅把值为 "NULL" 的变量判断为TRUE

所以我们在判断一个变量是否真正为"NULL"时,大多使用 is_null,从而避免"false"、"0"等值的干扰。

PHP 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
在字符串中把网址改成超级链接
Oct 09 PHP
PHP中基本符号及使用方法
Mar 23 PHP
php 在文件指定行插入数据的代码
May 08 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
Yii框架中memcache用法实例
Dec 03 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
PHP实现批量删除(封装)
Apr 28 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
PHP架构及原理知识点详解
Dec 22 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 #PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 #PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 #PHP
PHP使用正则表达式清除超链接文本
Nov 12 #PHP
PHP统计二维数组元素个数的方法
Nov 12 #PHP
多个PHP中文字符串截取函数
Nov 12 #PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 #PHP
You might like
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
简单的自定义php模板引擎
2016/08/26 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
npm qs模块使用详解
2020/02/07 Javascript
Python实现队列的方法
2015/05/26 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
简单介绍Object类的功能、常用方法
2013/10/02 面试题
新电JAVA笔试题目
2014/08/31 面试题
护理专科毕业生自荐书范文
2014/02/19 职场文书
网络管理员岗位职责
2014/03/17 职场文书
化工专业求职信
2014/07/01 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
幼师大班个人总结
2015/02/13 职场文书
法学专业求职信范文
2015/03/19 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
canvas 中如何实现物体的框选
2022/08/05 Javascript