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 彩色文字实现代码
Jun 29 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
php获取中文拼音首字母类和函数分享
Apr 24 PHP
php编程每天必学之验证码
Mar 03 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
php微信开发之关注事件
Jun 14 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
详解PHP中的8个魔术常量
Jul 06 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 excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
TensorFlow实现简单卷积神经网络
2018/05/24 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python爬虫请求头的使用
2020/12/01 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
电大本科自我鉴定
2014/02/05 职场文书
写自荐信的注意事项
2014/03/09 职场文书
安全生产演讲稿
2014/05/09 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
办公用品管理制度
2015/08/04 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
python执行js代码的方法
2021/05/13 Python
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP