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 相关文章推荐
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
PHP读取MySQL数据代码
Jun 05 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
php实现文件下载代码分享
Aug 19 PHP
php自定文件保存session的方法
Dec 10 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
CI框架中$this->load->library()用法分析
May 18 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 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初学者的8点有效建议
2010/11/20 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
javascript实现dom元素可拖动
2016/03/21 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
js实现网页随机验证码
2020/10/19 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python二叉树遍历的实现方法
2013/11/21 Python
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python文件排序的方法总结
2020/09/13 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
《水上飞机》教学反思
2014/04/10 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
行政上诉状范文
2015/05/23 职场文书
小学数学教师研修日志
2015/11/13 职场文书
车位出租协议书范本
2016/03/19 职场文书
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers