PHP中的empty、isset、isnull的区别与使用实例


Posted in PHP onMarch 22, 2019

做php开发时候,通常会用到empty,isset,is_null这几个函数,使用不当的话甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。因此开发时候,就没有注意,一段作为流程判断时候,就出现bug问题了。下面我们分别介绍一下这三个函数的区别和使用。

empty

如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 代码示例:

$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 为空' . "";
if (empty($b)) echo '$b 为空' . "";
if (empty($c)) echo '$c 为空' . "";
if (empty($d)) echo '$d 为空' . "";
// 以上输出皆为空

isset

如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。 代码示例:

$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

is_null

检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】

$a = null;
$b = false;
if (is_null($a)) echo '$a 为NULL' . "";
if (is_null($b)) echo '$b 为NULL' . "";
if (is_null($c)) echo '$c 为NULL' . "";
// 显示结果为
// $a 为NULL
// Undefined variable: c

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
PHP中redis的用法深入解析
Feb 20 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
PHP实现的简单sha1加密功能示例
Aug 27 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 #PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 #PHP
简单实用的PHP文本缓存类实例
Mar 22 #PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 #PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 #PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 #PHP
PHP里的$_GET数组介绍
Mar 22 #PHP
You might like
处理php自动反斜杠的函数代码
2010/01/05 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
介绍Python中的__future__模块
2015/04/27 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Django返回json数据用法示例
2016/09/18 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
高三政治教学反思
2014/02/06 职场文书
2014年创卫实施方案
2014/02/18 职场文书
汽车维修求职信
2014/06/15 职场文书
大专毕业生求职信
2014/07/05 职场文书
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js