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 相关文章推荐
随机广告显示(PHP函数)
Oct 09 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
php检测文本的编码
Jul 26 PHP
php中使用GD库做验证码
Mar 31 PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 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验证码类代码分享(已封装成类)
2011/07/17 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
php写app用的框架整理
2019/09/29 PHP
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
jsonp原理及使用
2013/10/28 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
Python itertools模块详解
2015/05/09 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
团日活动总结范文
2014/04/25 职场文书
企业指导教师评语
2014/04/28 职场文书
数学教育专业求职信
2014/07/22 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
初婚初育证明范本
2015/06/18 职场文书
教务处教学工作总结
2015/08/10 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫