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入门学习的几个不错的实例代码
Jul 13 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
PHP5函数小全(分享)
Jun 06 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
PHP中静态变量的使用方法实例分析
Dec 01 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
php获取文章内容第一张图片的方法示例
Jul 03 PHP
php 将json格式数据转换成数组的方法
Aug 21 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
PHP实现简单的计算器
2020/08/28 PHP
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
SVM基本概念及Python实现代码
2017/12/27 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python实现AES加密和解密
2019/03/27 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
python学习笔记之多进程
2020/08/06 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
德国网上宠物店:Zoobio
2018/05/23 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
采购求职信
2014/03/17 职场文书
企业安全生产检查制度
2015/08/06 职场文书
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python