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图片上传存储源码并且可以预览
Aug 26 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
php文件包含的几种方式总结
Sep 19 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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学习 字符串课件
2008/06/15 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
vue源码中的检测方法的实现
2019/09/26 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
护士求职自荐信范文
2014/03/19 职场文书
委托培训协议书
2014/11/17 职场文书
西安兵马俑导游词
2015/02/02 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android