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 相关文章推荐
批量修改RAR文件注释的php代码
Nov 20 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
Php-Redis安装测试笔记
Mar 05 PHP
php实现的递归提成方案实例
Nov 14 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
php7中停止php-fpm服务的方法详解
May 09 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
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
python字符串替换的2种方法
2014/11/30 Python
多版本Python共存的配置方法
2017/05/22 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
Python中Unittest框架的具体使用
2019/08/27 Python
python实现复制大量文件功能
2019/08/31 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
遗愿清单观后感
2015/06/09 职场文书
关于幸福的感言
2015/08/03 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL