PHP中判断变量为空的几种方法分享


Posted in PHP onAugust 26, 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面向对象概念
Nov 06 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 #PHP
php实现利用phpexcel导出数据
Aug 24 #PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 #PHP
PHP实现读取一个1G的文件大小
Aug 24 #PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 #PHP
PHP如何利用P3P实现跨域
Aug 24 #PHP
PHP引用符&的用法详细解析
Aug 22 #PHP
You might like
PHP SPL使用方法和他的威力
2013/11/12 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP实现的简单缓存类
2015/07/29 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
使用python实现多维数据降维操作
2020/02/24 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
安全生产责任书范本
2014/04/15 职场文书
精神文明建设标语
2014/06/16 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
食堂管理制度范本
2015/08/04 职场文书
会议承办单位欢迎词
2015/09/30 职场文书