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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
PHP Stream_*系列函数
Aug 01 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
深入PHP autoload机制的详解
Jun 09 PHP
php简单分页类实现方法
Feb 26 PHP
php简单实现数组分页的方法
Apr 30 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
PHP批量删除jQuery操作
Jul 23 PHP
java解析json方法总结
May 16 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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:风雨欲来 路在何方?
2006/10/09 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP函数超时处理方法
2016/02/14 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
javascript的正则匹配方法学习
2016/02/24 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
Python创建临时文件和文件夹
2020/08/05 Python
python 常见的反爬虫策略
2020/09/27 Python
python多线程和多进程关系详解
2020/12/14 Python
你懂得怎么写自荐信吗?
2013/12/27 职场文书
班组长岗位职责范本
2014/01/05 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA