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通过COM使用ADODB的简单例子
Dec 31 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 PHP
浅谈php://filter的妙用
Mar 05 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 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简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
pygame实现五子棋游戏
2019/10/29 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python 解析xml文件的示例
2020/09/29 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
用python计算文件的MD5值
2020/12/23 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
职业规划书如何设计?
2014/01/09 职场文书
管理专员自荐信
2014/01/26 职场文书
个人授权委托书范本
2014/04/03 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
长城导游词400字
2015/01/30 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书