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 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
基于php split()函数的用法详解
Jun 05 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
PHP之密码加密的几种方式
Jul 29 PHP
10款实用的PHP开源工具
Oct 23 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
PDO::getAttribute讲解
Jan 28 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
JavaScript中的私有成员
2006/09/18 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
详解vue 命名视图
2019/08/14 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Django卸载之后重新安装的方法
2017/03/15 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
python实现图书管理系统
2018/03/12 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
农救科工作职责
2013/11/27 职场文书
招商专员岗位职责
2014/02/08 职场文书
家长写给孩子的评语
2014/04/18 职场文书
护士年终考核评语
2014/12/31 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang