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缩略图生成程式(需要GD库支持)
Mar 06 PHP
wordpress之wp-settings.php
Aug 17 PHP
两个强悍的php 图像处理类1
Jun 15 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
php增删改查示例自己写的demo
Sep 04 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
详细解读php的命名空间(二)
Feb 21 PHP
laravel入门知识点整理
Sep 15 PHP
PHP遍历数组的6种方式总结
Nov 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时间戳转换的示例
2014/03/31 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
javascript中 try catch用法
2015/08/16 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
详解Python中的静态方法与类成员方法
2017/02/28 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
python opencv实现证件照换底功能
2019/08/19 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
房产授权委托书范本
2014/09/22 职场文书
生日寿星公答谢词
2015/09/29 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
利用Apache Common将java对象池化的问题
2022/06/16 Servers