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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP服务器页面间跳转实现方法
Aug 02 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
php身份证号码检查类实例
Jun 18 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
Python如何将函数值赋给变量
2020/04/28 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
电子商务自荐书范文
2014/01/04 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书