PHP中isset、empty的用法与区别示例详解


Posted in PHP onNovember 05, 2020

前言

在编写程序调用变量时,遇到未定义的变量时,会报错,这是就需要我们对变量先进行判断,再进行相关操作。

这里主要记录两个变量判断函数的使用:isset()与empty()

1、isset — 检测变量是否已设置并且非 NULL

isset ( mixed $var [, mixed $... ] ) : bool

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。

若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。

同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

注:如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

2、empty — 检查一个变量是否为空

empty ( mixed $var ) : bool

当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。

如果变量不存在的话,empty()并不会产生警告。

使用 empty 判断以下变量时,会被认为是空的:

"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)

关于 isset() 与 empty() 的判断变量的区别:

1、判断方式不同

isset() 判断变量是否声明并且不是 NULL
empty() 一个变量是否为空

2、判断特殊变量是否存在时的区别

<?php
$a = ""; // 空字符串
var_dump(isset($a)); // true
var_dump(!empty($a)); // false
echo '<br/>';

$b = 0; // 作为整数的0
var_dump(isset($b)); // true
var_dump(!empty($b)); // false
echo '<br/>';

$c = 0.0; // 作为浮点数的0
var_dump(isset($c)); // true
var_dump(!empty($c)); // false
echo '<br/>';

$d = "0"; // 作为字符串的0
var_dump(isset($d)); // true
var_dump(!empty($d)); // false
echo '<br/>';

$e = NULL;
var_dump(isset($e)); // false
var_dump(!empty($e)); // false
echo '<br/>';

$f = FALSE;
var_dump(isset($f)); // true
var_dump(!empty($f)); // false
echo '<br/>';

$g = array(); // 一个空数组
var_dump(isset($g)); // true
var_dump(!empty($g)); // false
echo '<br/>';

总结

到此这篇关于PHP中isset、empty用法与区别的文章就介绍到这了,更多相关PHP isset、empty的用法与区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
PHP学习之数组值的操作
Apr 17 PHP
解析PHP提交后跳转
Jun 23 PHP
PHP无限分类(树形类)
Sep 28 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
Yii使用技巧大汇总
Dec 29 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
TP3.2框架分页相关实现方法分析
Jun 03 PHP
PHP后门隐藏的一些技巧总结
Nov 04 #PHP
phpstudy2020搭建站点的实现示例
Oct 30 #PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 #PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 #PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 #PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 #PHP
PHP dirname功能及原理实例解析
Oct 28 #PHP
You might like
php a simple smtp class
2007/11/26 PHP
php cli配置文件问题分析
2015/10/15 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
document.createElement()用法
2013/03/13 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
django框架ModelForm组件用法详解
2019/12/11 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
如何开启linux的ssh服务
2015/02/14 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
优秀公益广告词大全
2014/03/19 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
机械工程师岗位职责
2014/06/16 职场文书
2015年试用期工作总结
2014/12/12 职场文书
学期个人自我总结
2015/02/13 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers