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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP之密码加密的几种方式
Jul 29 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
教师自我鉴定
2013/12/13 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
土地租赁协议书
2015/01/29 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
电视新闻稿
2015/07/17 职场文书
学校远程教育工作总结
2015/08/11 职场文书
追悼会答谢词范文
2015/09/29 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
python基础之函数的定义和调用
2021/10/24 Python
PyTorch中permute的使用方法
2022/04/26 Python
python turtle绘图
2022/05/04 Python
mysql全面解析json/数组
2022/07/07 MySQL
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript