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 相关文章推荐
关于时间计算的结总
Dec 06 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
php获取网页请求状态程序示例
2014/06/17 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
PHP内置加密函数详解
2016/11/20 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
浅析Python __name__ 是什么
2020/07/07 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
巴西宠物商店:Cobasi
2019/04/19 全球购物
店长助理岗位职责
2013/12/13 职场文书
周鸿祎:教你写创业计划书
2013/12/30 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
个人简历中自我评价
2014/02/11 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
世界读书日的活动方案
2014/08/20 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL