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 相关文章推荐
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
PHP中使用循环实现的金字塔图形
Nov 08 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php获取系统变量方法小结
May 29 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
php 二维数组快速排序算法的实现代码
Oct 17 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 mkdir()定义和用法
2009/01/14 PHP
基于empty函数的输出详解
2013/06/17 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python样条插值的实现代码
2018/12/17 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
实习自我鉴定模板
2013/09/28 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
工作会议方案
2014/05/21 职场文书
党员思想汇报材料
2014/12/19 职场文书
骨干教师个人总结
2015/02/11 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技