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 UTF8中文字符截断函数代码
Sep 11 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
常用PHP封装分页工具类
Jan 14 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
多个Laravel项目如何共用migrations详解
Sep 25 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
php字符串分割函数explode的实例代码
2013/02/07 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
高级人员简历的自我评价分享
2013/11/03 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
关爱空巢老人感想
2015/08/11 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android