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 时间转换Unix时间戳代码
Jan 22 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php三元运算符知识汇总
Jul 02 PHP
PHP实现的简单缓存类
Jul 29 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
Highcharts入门之简介
2016/08/02 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python运行时间的几种方法
2016/06/17 Python
python+django快速实现文件上传
2016/10/24 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python中图像通道分离与合并实例
2020/01/17 Python
python中re模块知识点总结
2021/01/17 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
早会主持词
2014/03/17 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
2016大学军训心得体会
2016/01/11 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
python blinker 信号库
2022/05/04 Python