-
php中isset与empty函数的困惑与用法分析
本文实例讲述了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(emptyempty($a));//true
- $b = "";
- var_dump(emptyempty($b));//true
- $c = "0";
- var_dump(emptyempty($b));//true
- $c = 0;
- var_dump(emptyempty($b));//true
- $e = false;
- var_dump(emptyempty($e));//true
- $f = array();
- var_dump(emptyempty($f));//true
- var_dump(emptyempty($g));//$g变量不存在,返回true
- var_dump(emptyempty($_GET['id']));//如果$_GET['id']不存在,则返回true;如果存在,但是值是上述条件,则还是返回true。
- ?>
总结:如果是判断一个变量是否存在,可以用isset()和empty();如果判断变量的值是否为空,那么就用empty()。
注意:以前我在做项目的时候,出现了这样的一个问题,我把select下拉列表框的选中的值传到服务器,服务器从超全局数组中获取到了值,但是当时我不清楚isset()和empty()的区别,当时只知道他们都能判断变量是否存在,结果我用了empty()函数,最后,就出现bug了,我用empty()进行判断,把我传过来的变量的值为0的情况就给排除了。
所有在这里提醒大家,如果只是判断变量是否为空,最好还是用isset()。
出处:http://www.phpfensi.com/php/20211202/18915.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式