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 相关文章推荐
第十二节--类的自动加载
Nov 16 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
PHP的微信支付接口使用方法讲解
Mar 08 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 PHP
PHP tp5中使用原生sql查询代码实例
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 array_push 数组函数
2009/12/26 PHP
重新认识php array_merge函数
2014/08/31 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
PHP pear安装配置教程
2016/05/14 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
Python 合并拼接字符串的方法
2020/07/28 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
捐款倡议书
2014/04/14 职场文书
残疾人小组计划书
2014/04/27 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
2014年度安全工作总结
2014/12/04 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
MySQL GRANT用户授权的实现
2021/06/18 MySQL
python前后端自定义分页器
2022/04/13 Python
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server