PHP8内置函数中的变量函数-PHP8知识详解
在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数gettype()、检查变量是否为数字或数字字符串的函数is_numeric()。
1、检测变量是否为空的函数empty()
检测变量是否为空的函数empty()的语法如下:
empty(variable)
其中,variable 是要检测的变量。empty() 函数会返回一个布尔值,如果变量为空,则返回 true,否则返回 false。
需要注意的是,empty() 函数会在以下情况返回 true(表示变量为空):
变量为非零数字或非空字符串等不同类型的非空值。
变量不存在、被赋值为 null 或被销毁。
而在其他情况下,empty() 函数会返回 false(表示变量不为空)。
下面看一下检测变量是否为空的函数empty()的示范代码:
<?php
$var1 = ""; // 空字符串
$var2 = 0; // 零值
$var3 = false; // 布尔值 false
$var4 = null; // null 值
$var5 = "php"; // php值 if (empty($var1)) { echo "变量 var1 是空的";
} else { echo "变量 var1 不是空的";
} echo"<br>";if (empty($var2)) { echo "变量 var2 是空的";
} else { echo "变量 var2 不是空的";
} echo"<br>";if (empty($var3)) { echo "变量 var3 是空的";
} else { echo "变量 var3 不是空的";
} echo"<br>";if (empty($var4)) { echo "变量 var4 是空的";
} else { echo "变量 var4 不是空的";
} echo"<br>";if (empty($var5)) { echo "变量 var5 是空的";
} else { echo "变量 var5 不是空的";
}
?>
以上内容在PHP8中运行结果如下:
变量 var1 是空的
变量 var2 是空的
变量 var3 是空的
变量 var4 是空的
变量 var5 不是空的
2、判断变量是否定义过的函数isset()
在 PHP 中,isset() 是一个用于检查变量是否已经定义且不为 null 的函数。它的语法结构如下:
bool isset(mixed $var [, mixed $...])
isset() 可以接受多个参数,并且对每个参数分别进行判断。它返回一个布尔值,如果所有参数都已定义且不为 null,则返回 true,否则返回 false。
以下是一些示例代码,展示了 isset() 函数的常见用法:
<?php
$var1 = 10;
$var2 = null;isset($var1); // 返回 true,因为 $var1 已经定义且不为 null
isset($var2); // 返回 false,因为 $var2 为 null
isset($var3); // 返回 false,因为 $var3 没有定义
isset($var1, $var2); // 返回 false,因为 $var2 为 nullif (isset($var1)) {echo '$var1 已定义且不为 null';
} else {echo '$var1 未定义或为 null';
}
?>
以上代码在PHP8中运行的结果为:
$var1 已定义且不为 null
请注意,isset() 只能用于变量,不能用于常量。如果要检查常量是否已经定义,请使用 defined() 函数。
3、销毁指定的变量的函数unset()
销毁指定的变量unset(),语法结构如下:
unset($variable);
其中 $variable 是要销毁的变量名。
使用 unset() 函数可以将指定的变量从内存中移除,释放其占用的资源。被销毁的变量将不再可用,并且尝试访问它们将引发一个 Notice 错误。
以下是一个示例,演示了如何使用 unset() 函数来销毁变量:
<?php
$name = "John Doe";
unset($name);// 尝试访问已销毁的变量会导致 Notice 错误
echo $name; // Notice: Undefined variable: name
?>
在PHP8中运行结果:
Warning: Undefined variable $name in D:\phpenv\www\localhost\test.php on line 6
4、获取变量的类型的函数gettype()
PHP8中获取变量的类型的函数gettype()的语法结构如下:
string gettype($var)
其中,$var 是要获取类型的变量。返回值为字符串类型,表示变量的类型。常见的类型包括:"boolean"、"integer"、"float"、"string"、"array"、"object"、"null"。
PHP8中获取变量的类型的函数gettype()的示范代码:
<?php
$number = 42;
$str = "Hello, World!";
$arr = [1, 2, 3];
$obj = new stdClass();
$isTrue = true;echo gettype($number)."<br>";
echo gettype($str)."<br>";
echo gettype($arr)."<br>";
echo gettype($obj)."<br>";
echo gettype($isTrue);
?>
以上代码在PHP8中的运行结果为:
integer
string
array
object
boolean
5、检查变量是否为数字或数字字符串的函数is_numeric()
PHP8中检查变量是否为数字或数字字符串的函数is_numeric()的语法结构如下:
bool is_numeric( mixed $value )
其中 $value 是要检查的值,可以是一个变量、常量或表达式。
该函数返回一个布尔值,如果给定的值为数字或数字字符串,则返回 true,否则返回 false。
以下是一些示例代码,展示了 is_numeric() 函数的使用方式和输出结果:
<?php
$var1 = 123; // 整数
$var2 = 3.14; // 浮点数
$var3 = "123"; // 数字字符串
$var4 = "abc"; // 非数字字符串
$var5 = true; // 布尔值 true(将被转换为整数 1)
$var6 = false; // 布尔值 false(将被转换为整数 0)
$var7 = NAN; // 不是一个数字(NaN) echo var_dump(is_numeric($var1)) . "<br>";
echo var_dump(is_numeric($var2)) . "<br>";
echo var_dump(is_numeric($var3)) . "<br>";
echo var_dump(is_numeric($var4)) . "<br>";
echo var_dump(is_numeric($var5)) . "<br>";
echo var_dump(is_numeric($var6)) . "<br>";
echo var_dump(is_numeric($var7));
?>
以上代码在PHP8中的运行结果为:
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
这只是其中一些与变量相关的内置函数,在PHP文档中还有其他许多函数可供使用。您可以根据具体需求来选择适合您的函数。
下面简单介绍几个不在详细展开说明了:
var_dump(): 用于打印变量的结构和值。
print_r(): 用于打印变量的结构和值,可读性更高。
is_array(): 用于检查一个变量是否为数组。
is_bool(): 用于检查一个变量是否为布尔值。
is_float(): 用于检查一个变量是否为浮点数。
is_int(): 用于检查一个变量是否为整数。
is_string(): 用于检查一个变量是否为字符串。
is_null(): 用于检查一个变量是否为 null。
篇幅有限,今天学习的变量函数中,着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数gettype()、检查变量是否为数字或数字字符串的函数is_numeric()。
相关文章:

PHP8内置函数中的变量函数-PHP8知识详解
在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...

9月3日,每日信息差
第一、中国中铁与广州市城中村改造做地主体签署战略合作框架协议。根据协议,双方将积极响应广州市统筹做地推进高质量发展工作精神,充分发挥双方优势资源,共同加大在物业复建安置、基础设施建设、综合开发投资、城中村改造(微改造…...

2023年了,java后端还有未来吗?
前言 Java当下确实是比较的内卷,但关键在于个人,可以看看不同地方(这里主要举例北上广深一线城市)对于Java开发工程师这个职位的具体要求: 在以下北上广深这些一线大城市的面试招聘当中不难看出,凡是工资…...

使用cmake,将github上的某一个库进行集成到vs2022上
可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译,生成了三个文件夹:一个放的是lib文件(lib文件…...

第二张微服务的调用与注册
文章目录 工程导入利用RestTemplate调用服务需求创建RestTemplate的实例到Spring容器使用RestTemplate发送请求消费者和提供者 Eureka注册中心服务远程调用会出现的问题Eureka的结构和作用Eureka的配置过程搭建注册中心服务注册服务发现 Ribbon负载均衡负载均衡原理源码跟踪总结…...

iWatch框架设计
iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject:是IOS相关文件文件内容iWatchApp和iWatch Extension:是之前使用xcode14之前的xcode创建的360 app的Watch App,产生的文件结构,包含一个app和Extension的ta…...

【python】读取.dat格式文件
import binascii# 打开二进制文件以只读二进制模式 with open(EXCEL/文件.dat, rb) as file:binary_data file.read()print(binary_data)# 将二进制数据转换为十六进制字符串 hex_data binascii.hexlify(binary_data).decode(utf-8) # binary_data 现在包含了文件的二进制内容…...

机器学习课后习题 --- 朴素贝叶斯
(一)单选题 1.假设会开车的本科生比例是15%,会开车的研究生比例是23%。若在某大学研究生占学生比例是20%,则会开车的学生是研究生的概率是多少? A:80%B:16.6% C:23% D:15% 2.下列关于朴素贝叶斯的特点说法错误的是…...

【设备树笔记整理7】实践操作
1 使用设备树给DM9000网卡_触摸屏指定中断 1.1 修改方法 根据设备节点的compatible属性,在驱动程序中构造/注册 platform_driver,在 platform_driver 的 probe 函数中获得中断资源。 1.2 实验方法 以下是修改好的代码:第6课第1节_网卡_触摸…...

使用VisualStudio制作上位机(六)
文章目录 使用VisualStudio制作上位机(六)第五部分:应用程序打包第一步:勾选为Release模式第二步:生成解决方案第三步:将我们额外添加的文件放入到Release这个文件夹里 使用VisualStudio制作上位机…...

包管理工具--》npm的配置及使用(一)
目录 🌟概念 🌟背景 🌟前端包管理器 🌟包的安装 本地安装 全局安装 🌟包配置 配置文件 保存依赖关系 🌟包的使用 🌟写在最后 🌟概念 模块(module)…...

期货基础知识
一、期货是什么? 期货是与现货相对应,并由现货衍生而来。期货通常指期货合约,期货与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大…...

NC后端扩展开发
前言 在日常的工作中,会遇到各种各样的需要进行扩展开发的需求,可以使用系统预留的扩展开发机制来实现,避免修改源码。因NC产品已迭代至BIP版本,所以前端扩展方式就再进行不赘述了,本文主要介绍后端扩展开发方式&…...

nginx vue2+webpack 和 vue3+vite 配置二级目录访问
我们开发中会遇到这样的需求,让我们用服务器nginx部署一个用域名的二级目录来访问项目 https:xxx/二级目录/来放访问项目 目录 思路 1、nginx配置(vue2 和 vue3配置的nginx相同) 2、vue2webpack的配置 (1࿰…...

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问
文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…...

算法leetcode|76. 最小覆盖子串(rust重拳出击)
文章目录 76. 最小覆盖子串:样例 1:样例 2:样例 3:提示:进阶: 分析:在这里插入图片描述 题解:rust:go:c:python:java: 76.…...

如何让你的jupyter notebook 排版得像Word(Markdown和网页文件写法)
案例背景 很多时候我们在jupyter notebook里面的写代码,画图,但是文字分析什么的写在里面纯文本不好看,需要进行排版,那么就得用markdown的写法,如何还想居中或者更花里胡哨的字体,那就得要网页文件的一些…...

AndroidTV端:酒店扫码认证投屏DLNA
被老板叼了几次了,最近实在忍不了,准备离职; 但是担心离职后长时间没有办法找到工作 就想贡献一套平时琢磨出来的程序,请各位有能力的话带我熬过这凛冽的寒冬。 目前写出来的,有三个端:安卓TV端…...

基于PyTorch的交通标志目标检测系统
一、开发环境 Windows 10PyCharm 2021.3.2Python 3.7PyTorch 1.7.0 二、制作交通标志数据集,如下图 三、配置好数据集的地址,然后开始训练 python train.py --data traffic_data.yaml --cfg traffic_yolov5s.yaml --weights pretrained/yolov5s.pt --e…...

feign调用失败 feign.RetryableException: xxx-service executing GET http://xxx/test
一。 问题引入 升级springcloud的版本后 突然发现 以前正常的feign调用也报错了 升级后的各组件版本如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 错误日志如下 feign.RetryableException: xxx-service executing GET http://xxx-servic…...

mysql 用户管理
目录 用户 创建用户 删除用户 修改密码 权限管理 赋权 查看权限 插销权限 总结 用户 mysql 的用户都存在于系统数据库 mysql 的user 表中 mysql> show tables; --------------------------- | Tables_in_mysql | --------------------------- | column…...

pyinstaller打包exe运行闪退
这里写自定义目录标题 前言问题描述解决过程 前言 闪退原因可能有很多,这里记录下我遇到的问题,简单来说是dll调用错误导致的闪退,因为我的python用的是32位的,但是pyinstaller却是64位的,属于用conda的时候没注意。 …...

ARM 汇编基础知识
1.为什么学习汇编? 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一 上电 SP 指针还没初始化, C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境…...

CRM 自动化如何改善销售和客户服务?
许多 B2B 和 B2C 公司都使用 CRM 系统来组织业务流程,使复杂的任务更容易完成。企业可以使用 CRM 自动化来自动化工作流程,让团队有更多的时间来执行高价值的任务,而不是陷于一堆琐碎事情中。 什么是CRM自动化? CRM 自动化是指 C…...

Bean 的六种作用域
目录 一、作用域是什么? 1、singleton(单例作用域) 2、prototype(原型作用域) 3、request(请求作用域) 4、session(回话作用域) 5、application(全局作用域&a…...

go语言--锁
锁的基础,go的锁是构建在原子操作和信号锁之上的 原子锁 原子包实现协程的对同一个数据的操作,可以实现原子操作,只能用于简单变量的简单操作,可以把多个操作变成一个操作 sema锁 也叫信号量锁/信号锁 核心是一个uint32值&#…...

再见,CSDN
从我2018年1月31日加入CSDN,到现在已经5年多的时间了。在这5年里,陆陆续续在CSDN上发布了很多论文阅读笔记、教程、技术文章等等,记录了我从大四到研究生再到工作这段时间的学习和成长轨迹。 我一直有备份个人资料的习惯,尤其是耗…...

MySQL总复习
目录 登录 显示数据库 创建数据库 删除数据库 使用数据库 创建表 添加数据表数据 查询表 添加数据表多条数据 查询表中某数据 增insert 删delete 改update 查select where like 编辑 范围查找 order by 聚合函数 count max min sum avg g…...

桌面平台层安全随手记录
声明 本文是学习桌面云安全技术要求. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 桌面平台层安全 桌面接入安全 用户标识 一般要求 本项要求包括: a) 系统应为用户提供唯一的身份标识,同时将用户的身份标识与该用户的所…...

【Docker】 08-Dockerfile
什么是Dockerfile Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的教程,主要作用是用来构建docker镜像的构建文件。 Dockerfile解析过程 Dockerfile的保留命令 保留字作用FROM当前镜像是基于哪个镜像的 第一个指令必须是FROMMA…...