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 文件上传源码分析(RFC1867)
Oct 30 PHP
php下保存远程图片到本地的办法
Aug 08 PHP
php的hash算法介绍
Feb 13 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
php 类自动载入的方法
Jun 03 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
php提供实现反射的方法和实例代码
Sep 17 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
php mysql数据库操作分页类
2008/06/04 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
python中turtle库的简单使用教程
2020/11/11 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
荷兰手表网站:Watch2Day
2018/07/02 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
自我评价范文分享
2014/01/04 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
2019年大学推荐信
2019/06/24 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL