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通过COM使用ADODB的简单例子
Dec 31 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
php中长文章分页显示实现代码
Sep 29 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 PHP
PHP7新特性
Mar 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桌面中心(三) 修改数据库
2007/03/11 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
php上传文件常见问题总结
2015/02/03 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
php 常用的系统函数
2017/02/07 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
jquery常用操作小结
2014/07/21 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
js实现小时钟效果
2020/03/25 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python 自定义对象的打印方法
2019/01/12 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
Django中FilePathField字段的用法
2020/05/21 Python
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
高级护理实习生自荐信
2013/09/28 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
安全生产目标责任书
2014/04/14 职场文书
贷款担保申请书
2014/05/20 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis