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将数据导入到Foxmail
Oct 09 PHP
swfupload 多文件上传实现代码
Aug 27 PHP
PHP 全角转半角实现代码
May 16 PHP
php 字符串替换的方法
Jan 10 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
php上传图片类及用法示例
May 11 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
php中的登陆login实例代码
Jun 20 PHP
Laravel手动返回错误码示例
Oct 22 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
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
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php笔记之:AOP的应用
2013/04/24 PHP
提高PHP编程效率的方法
2013/11/07 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python追加元素到列表的方法
2015/07/28 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
如何在django中添加日志功能
2020/02/06 Python
详细分析Python垃圾回收机制
2020/07/01 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
附答案的Java面试题
2012/11/19 面试题
师范教师毕业鉴定
2014/01/13 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
五四青年节的活动方案
2014/08/20 职场文书
先进个人事迹材料
2014/12/29 职场文书
国庆庆典邀请函
2015/02/02 职场文书
运动会开幕式致辞
2015/07/29 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫