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 相关文章推荐
全文搜索和替换
Oct 09 PHP
mysql5详细安装教程
Jan 15 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 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
Zerg兵种介绍
2020/03/14 星际争霸
PHP 八种基本的数据类型小结
2011/06/01 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
详解php中的implements 使用
2017/06/13 PHP
调试php程序的简单步骤
2019/10/04 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
限制只能输入数字的实现代码
2016/05/16 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
python机器学习库常用汇总
2017/11/15 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
新护士岗前培训制度
2014/02/02 职场文书
岗位聘任书范文
2014/03/29 职场文书
法人代表委托书
2014/04/04 职场文书
化工操作工岗位职责
2014/04/29 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
导游词之日月潭
2019/11/05 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
pytorch实现手写数字图片识别
2021/05/20 Python