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数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
php解析json数据实例
Aug 19 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP 断点续传实例详解
Nov 11 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 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生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
使用python实现tcp自动重连
2017/07/02 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
档案接收函范文
2014/01/10 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
拉歌口号大全
2014/06/13 职场文书
人事专员岗位职责
2015/02/03 职场文书
单位证明范文
2015/06/18 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS