PHP中判断变量为空的几种方法小结


Posted in PHP onNovember 12, 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 相关文章推荐
mysql5写入和读出乱码解决
Nov 25 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php中opendir函数用法实例
Nov 15 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
浅谈laravel中的关联查询with的问题
Oct 10 PHP
PHP如何防止用户重复提交表单
Dec 09 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 #PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 #PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 #PHP
PHP使用正则表达式清除超链接文本
Nov 12 #PHP
PHP统计二维数组元素个数的方法
Nov 12 #PHP
多个PHP中文字符串截取函数
Nov 12 #PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 #PHP
You might like
javascript,php获取函数参数对象的代码
2011/02/03 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
python实现两个文件合并功能
2018/04/01 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
在python中用url_for构造URL的方法
2019/07/25 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
python如何提升爬虫效率
2020/09/27 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
什么是接口(Interface)?
2013/02/01 面试题
社团招新策划书
2014/02/04 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
领导干部作风建设总结
2014/10/23 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
基于flask实现五子棋小游戏
2021/05/25 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
灵能百分百第三季什么时候来?
2022/03/15 日漫