php中isset与empty函数的困惑与用法分析


Posted in PHP onJuly 05, 2019

本文实例讲述了php中isset与empty函数的困惑与用法。分享给大家供大家参考,具体如下:

在学习php有一段时间之后,感觉自己的基础知识还是有点不牢固,有的问题就不怎么知道,比如就有一个,在判断一个变量是否为空的情况下,我就不知道是用isset()还是empty()。今天我就来分析该用哪个函数。

isset():用于判断一个函数是否被设置过,如果设置过就为true,否则就为false,但是有一个例外,就是如果一个变量被设置成null的话,此时也会返回的也是false

<?php
 $a = null;
 var_dump(isset($a));//a变量已赋值,但是被设置成null,故返回false
 var_dump(isset($b));//内存中不存在变量b,故返回false
 var_dump(isset($_GET['id']));//如果$_GET['id']变量不存在,则返回false;如果$_GET['id']存在,则返回true
?>

empty():用于判断一个变量是否为空,如果是整形的0,浮点型的0.0,字符型的' ‘和'0',还有布尔型的false,NULL型的null,空数组等

<?php
 $a = null;
 var_dump(empty($a));//true
 $b = "";
 var_dump(empty($b));//true
 $c = "0";
 var_dump(empty($b));//true
 $c = 0;
 var_dump(empty($b));//true
 $e = false;
 var_dump(empty($e));//true
 $f = array();
 var_dump(empty($f));//true
 var_dump(empty($g));//$g变量不存在,返回true
 var_dump(empty($_GET['id']));//如果$_GET['id']不存在,则返回true;如果存在,但是值是上述条件,则还是返回true。
?>

总结:如果是判断一个变量是否存在,可以用isset()empty();如果判断变量的值是否为空,那么就用empty()

注意:以前我在做项目的时候,出现了这样的一个问题,我把select下拉列表框的选中的值传到服务器,服务器从超全局数组中获取到了值,但是当时我不清楚isset()empty()的区别,当时只知道他们都能判断变量是否存在,结果我用了empty()函数,最后,就出现bug了,我用empty()进行判断,把我传过来的变量的值为0的情况就给排除了。

所有在这里提醒大家,如果只是判断变量是否为空,最好还是用isset()

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
linux中cd命令使用详解
Jan 08 PHP
php强制更新图片缓存的方法
Feb 11 PHP
php文件操作相关类实例
Jun 18 PHP
PHP关于foreach复制知识点总结
Jan 28 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
phpinfo的知识点总结
Oct 10 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 #PHP
php无限极分类实现方法分析
Jul 04 #PHP
php常用日期时间函数实例小结
Jul 04 #PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 #PHP
PHP操作XML中XPath的应用示例
Jul 04 #PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 #PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 #PHP
You might like
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php cookie 详解使用实例
2016/11/03 PHP
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
vue实现验证用户名是否可用
2021/01/20 Vue.js
python进行两个表格对比的方法
2018/06/27 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
机电专业毕业生求职信
2013/10/27 职场文书
创先争优承诺书范文
2014/03/31 职场文书
房地产开发项目建议书
2014/05/16 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
二手车转让协议书
2015/01/29 职场文书
投标单位介绍信
2015/05/05 职场文书
上诉答辩状范文
2015/05/22 职场文书
开学典礼观后感
2015/06/15 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript