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网页后退不再出现过期
Mar 08 PHP
php include和require的区别深入解析
Jun 17 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
php算法实例分享
Jul 14 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
微信 开发生成带参数的二维码的实例
Nov 23 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 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获取url的函数代码
2011/08/02 PHP
PHP 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
JS代码实现页面切换效果
2021/01/10 Javascript
在Python中使用Neo4j数据库的教程
2015/04/16 Python
简单介绍Python中的几种数据类型
2016/01/02 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
党员一帮一活动总结
2014/07/08 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
擅自离岗检讨书
2014/09/12 职场文书
高三英语教学计划
2015/01/23 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书