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 执行系统命令的方法
Jul 07 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
php通用防注入程序 推荐
Feb 26 PHP
PHP多文件上传实例
Jul 09 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
Laravel手动返回错误码示例
Oct 22 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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生成静态页
2006/11/25 PHP
一个图形显示IP的PHP程序代码
2007/10/19 PHP
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
python之wxPython菜单使用详解
2014/09/28 Python
python http接口自动化脚本详解
2018/01/02 Python
python机器学习之神经网络实现
2018/10/13 Python
python 多线程串行和并行的实例
2019/02/22 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python如何定义有默认参数的函数
2020/08/10 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
党员党性分析材料
2014/02/17 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
《画家乡》教学反思
2014/04/22 职场文书
公司经理任命书
2014/06/05 职场文书
物业保安岗位职责
2014/07/02 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js