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 相关文章推荐
cmd下运行php脚本
Nov 25 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
Smarty模板变量与调节器实例详解
Jul 20 PHP
PHP 实现链式操作
Mar 09 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python 多线程的实例详解
2017/09/07 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
家长评语和期望
2014/02/10 职场文书
企业标语口号
2014/06/10 职场文书
颐和园导游词
2015/01/30 职场文书
党校个人总结
2015/03/04 职场文书
班级管理经验交流材料
2015/11/02 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android