php之is_null、empty 、isset 的区别

embedded/2024/10/22 2:35:16/

目录

1.isset():

2.empty():

3.is_null:

4.总结:


在PHP中,is_nullemptyisset 是三个用于检查变量状态的常用函数,它们各自有不同的用途和行为:

1.isset()

  • isset() 函数用来检查一个变量是否已设置并且非 null
  • 如果变量存在并且已经被初始化(即不是 null),isset() 返回 true
  • 如果变量未定义或其值为 nullisset() 返回 false

代码示例:

php">$var = null;
if (isset($var)) {echo "变量已设置";
} else {echo "变量未设置";
}
// 输出:变量未设置

2.empty()

  • empty() 函数用来检查一个变量是否为空。
  • 如果变量的值被认为是“空”的(例如 "" 空字符串、00.0"0"nullfalse、未定义的变量),empty() 返回 true
  • 如果变量非空,empty() 返回 false

代码示例:

php">$var = null;
if (empty($var)) {echo "变量为空";
} else {echo "变量非空";
}
// 输出:变量为空

3.is_null

  • is_null() 函数用来检查一个变量是否严格等于 null
  • 只有当变量的值严格为 null 时,is_null() 才返回 true

代码示例:

php">$var = null;
if ($var === null) {echo "变量的值为null";
} else {echo "变量的值不是null";
}
// 输出:变量的值为null

4.总结:

  • isset() 检查变量是否已设置且不是 null
  • empty() 检查变量是否为空,包括 nullfalse0、空字符串等。
  • is_null() 严格检查变量是否等于 null

在实际编程中,根据需要检查的条件不同,你可能会使用这三个函数中的一个或多个。例如,如果你想确保一个变量不仅已设置,而且有非空的值,你可以结合使用 isset()empty()

php">if (isset($var) && !empty($var)) {// 变量已设置且非空
}

如果你想检查一个变量是否为 null 或者为空字符串,你可以结合使用 is_null()empty()

php">if (is_null($var) || $var === "") {// 变量的值为null或空字符串
}

以下用一张表搞清楚is_null、empty、isset的区别

变量is_nullemptyisset
$a=""falsetruetrue
$a=" "falsefalsetrue
$a=nulltruetruefalse
$atruetruefalse
$a=array()falsetruetrue
$a=falsefalsetruetrue
$a=8falsefalsetrue
$a=1falsefalsetrue
$a=0falsetruetrue
$a="0"falsetruetrue
$a="true"falsefalsetrue
$a="false"falsefalsetrue

http://www.ppmy.cn/embedded/129440.html

相关文章

qt继承结构

一、 继承结构 所有的窗口类均继承自QWidget类,因此QWidget类本身包含窗口的特性。QWidget对象本身既可以作为独立窗口,又可以作为组件(子窗口)。 通过构造函数可以创建以上两种形态的QWidget: // 参数1:使…

基于SpringBoot+Vue+uniapp的海产品加工销售一体化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的视频演示 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

Git客户端使用之命令行

一、git客户端命令行的使用 1、创建本地用户并绑定ssh-key到gitlab #在本地注册用户,这个用户随便创建它就是与git仓库连接的一个用户,不过最好喝git仓库用户一样有利于区分。 git config --global user.name "wenqiang1" git config --global user.ema…

Android中的内存泄漏及其检测方式

Android中的内存泄漏及其检测方式 一、Android内存泄漏概述 在Android开发中,内存泄漏是一个常见且严重的问题。内存泄漏指的是在应用程序中,由于某些原因,已经不再使用的对象仍然被引用,导致垃圾回收器(Garbage Col…

Golang | Leetcode Golang题解之第480题滑动窗口中位数

题目: 题解: type hp struct {sort.IntSlicesize int } func (h *hp) Push(v interface{}) { h.IntSlice append(h.IntSlice, v.(int)) } func (h *hp) Pop() interface{} { a : h.IntSlice; v : a[len(a)-1]; h.IntSlice a[:len(a)-1]; return v }…

python 爬虫 入门 四、线程,进程,协程

线程和进程大部分人估计都知道,但协程就不一定了。 一、进程 进程是操作系统分配资源和调度的基本单位,一个程序开始运行时,操作系统会给他分配一块独立的内存空间并分配一个PCB作为唯一标识。初始化内存空间后进程进入就绪态,PC…

MySQL 设计数据表

一个数据表主要包含信息有 : 表名、主键、字段、数据类型、索引,本节主要介绍表的命名规范、字段命名、字段的数据类型选择。 新建的表都是新建在 “item_name” 数据库中的,新建 “item_name” 数据库命令如下 : CREATE DATABASE item_name;新建数据库…

信号与噪声分析——第一节-确定信号的分析

目录 1.确定信号的分析 1.1确定信号的分类: 1.周期信号与非周期信号: 周期信号的定义: 性质: 2.能量信号与功率信号: 定义 区别: 3.基带信号与频带信号: 基带信号的定义: …