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 相关文章推荐
substr()函数中文版
Oct 09 PHP
解决中英文字符串长度问题函数
Jan 16 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php实现的zip文件内容比较类
Sep 24 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
Laravel开启跨域请求的方法
Oct 13 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 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
德劲1107的电路分析与打磨
2021/03/02 无线电
一个简单实现多条件查询的例子
2006/10/09 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
基于python生成器封装的协程类
2019/03/20 Python
Python pandas用法最全整理
2019/08/04 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
暑期实习鉴定
2013/12/16 职场文书
运动会广播稿200米
2014/01/27 职场文书
绿色城市实施方案
2014/03/19 职场文书
毕业大学生自荐信
2014/06/17 职场文书
青年教师听课心得体会
2016/01/15 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
windows安装python超详细图文教程
2021/05/21 Python
用python实现监控视频人数统计
2021/05/21 Python
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL