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的call_user_func传reference引发的思考
Jul 23 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
codeigniter框架批量插入数据
Jan 09 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
php字符串截取函数用法分析
Nov 25 PHP
CentOS安装php v8js教程
Feb 26 PHP
PHP中JSON的应用技巧
Oct 10 PHP
Yii2如何批量添加数据
May 17 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
php通过header发送自定义数据方法
Jan 18 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JavaScript 动态生成方法的例子
2009/07/22 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python 自动重连wifi windows的方法
2018/12/18 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
董事长秘书岗位职责
2013/11/29 职场文书
竞争上岗实施方案
2014/03/21 职场文书
擅自离岗检讨书
2014/09/12 职场文书
个人先进材料范文
2014/12/30 职场文书
绿里奇迹观后感
2015/06/15 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
PyTorch的Debug指南
2021/05/07 Python
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL