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 高手之路(一)
Oct 09 PHP
一个PHP数组应该有多大的分析
Jul 30 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 PHP
PHP session会话的安全性分析
Sep 08 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php与php MySQL 之间的关系
2009/07/17 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
深入研究React中setState源码
2017/11/17 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
Python使用Django实现博客系统完整版
2020/09/29 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
python利用7z批量解压rar的实现
2019/08/07 Python
python如何将多个PDF进行合并
2019/08/13 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
司机岗位职责
2013/11/15 职场文书
环境保护标语
2014/06/20 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android