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 28 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP token验证生成原理实例分析
Jun 05 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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日期时间运算汇总
2015/11/04 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
JS实现页面内跳转的简单代码
2017/09/03 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
幼儿园教师工作制度
2014/01/22 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
亚运会口号
2014/06/20 职场文书
助残日活动总结
2014/08/27 职场文书
学习计划书怎么写
2014/09/15 职场文书
生产实习心得体会范文
2016/01/22 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle