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 xml-rpc远程调用
Dec 19 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
PHP邮件群发机实现代码
Feb 16 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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购物网站支付paypal使用方法
2010/11/28 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
Python中os.path用法分析
2015/01/15 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
专升本自我鉴定
2013/10/10 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
经典商业广告词
2014/03/13 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
个人作风建设心得体会
2014/10/22 职场文书
任命书怎么写
2015/03/02 职场文书
三八节活动主持词
2015/07/04 职场文书
工作会议简报
2015/07/20 职场文书
教师旷工检讨书
2015/08/15 职场文书
四年级数学教学反思
2016/02/16 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python