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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
php事务处理实例详解
Jul 11 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 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 session 预定义数组
2009/03/16 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
用JQuery 实现的自定义对话框
2007/03/24 Javascript
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
python字典的常用方法总结
2019/07/31 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
2014年社区学雷锋活动总结
2014/03/09 职场文书
《忆江南》教学反思
2014/04/07 职场文书
企业宣传策划方案
2014/05/29 职场文书
连锁超市项目计划书
2014/09/15 职场文书
电子商务实训报告总结
2014/11/05 职场文书
如何正确理解python装饰器
2021/06/15 Python
python中 .npy文件的读写操作实例
2022/04/14 Python