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下过滤HTML代码的函数
Dec 10 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
谈谈php对接芝麻信用踩的坑
Dec 01 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 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 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
零基础php编程好学吗
2019/10/11 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
js实现导航跟随效果
2018/11/17 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
python列表去重的二种方法
2014/02/14 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python selenium循环登陆网站的实现
2019/11/04 Python
tensorflow之并行读入数据详解
2020/02/05 Python
python中with用法讲解
2020/02/07 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
PyQt5实现画布小程序
2020/05/30 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
什么是封装
2013/03/26 面试题
资料员的岗位职责
2013/11/20 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
教师节活动主持词
2014/04/02 职场文书
临床护理求职信
2014/04/26 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang