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 相关文章推荐
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
php中文本操作的类
Mar 17 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
PHP实现图片压缩
Sep 09 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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版(2)
2006/10/09 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
php制作文本式留言板
2015/03/18 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
php生成word并下载代码实例
2019/03/15 PHP
jQuery使用技巧简单汇总
2013/04/18 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python标准库os.path包、glob包使用实例
2014/11/25 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
分享vim python缩进等一些配置
2018/07/02 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
耐克中国官方商城:Nike中国
2018/10/18 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
电话销售经理岗位职责
2013/12/07 职场文书
特教教师先进事迹
2014/05/21 职场文书
公司授权委托书范本
2014/09/18 职场文书
2015年党小组工作总结
2015/05/26 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
Vue深入理解插槽slot的使用
2022/08/05 Vue.js