当前位置: 首页 > news >正文

PHP8内置函数中的变量函数-PHP8知识详解

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

Image

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中&#xff0c;与变量相关的内置函数比较多&#xff0c;本文说一些比较重要的、常见的内置函数。今日着重讲解了5个&#xff0c;分别是&#xff1a;检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...

9月3日,每日信息差

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

2023年了,java后端还有未来吗?

前言 Java当下确实是比较的内卷&#xff0c;但关键在于个人&#xff0c;可以看看不同地方&#xff08;这里主要举例北上广深一线城市&#xff09;对于Java开发工程师这个职位的具体要求&#xff1a; 在以下北上广深这些一线大城市的面试招聘当中不难看出&#xff0c;凡是工资…...

使用cmake,将github上的某一个库进行集成到vs2022上

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

第二张微服务的调用与注册

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

iWatch框架设计

iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject&#xff1a;是IOS相关文件文件内容iWatchApp和iWatch Extension&#xff1a;是之前使用xcode14之前的xcode创建的360 app的Watch App&#xff0c;产生的文件结构&#xff0c;包含一个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 现在包含了文件的二进制内容…...

机器学习课后习题 --- 朴素贝叶斯

&#xff08;一&#xff09;单选题 1.假设会开车的本科生比例是15%&#xff0c;会开车的研究生比例是23%。若在某大学研究生占学生比例是20%&#xff0c;则会开车的学生是研究生的概率是多少&#xff1f; A:80%B:16.6% C:23% D:15% 2.下列关于朴素贝叶斯的特点说法错误的是…...

【设备树笔记整理7】实践操作

1 使用设备树给DM9000网卡_触摸屏指定中断 1.1 修改方法 根据设备节点的compatible属性&#xff0c;在驱动程序中构造/注册 platform_driver&#xff0c;在 platform_driver 的 probe 函数中获得中断资源。 1.2 实验方法 以下是修改好的代码&#xff1a;第6课第1节_网卡_触摸…...

使用VisualStudio制作上位机(六)

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

包管理工具--》npm的配置及使用(一)

目录 &#x1f31f;概念 &#x1f31f;背景 &#x1f31f;前端包管理器 &#x1f31f;包的安装 本地安装 全局安装 &#x1f31f;包配置 配置文件 保存依赖关系 &#x1f31f;包的使用 &#x1f31f;写在最后 &#x1f31f;概念 模块&#xff08;module&#xff09…...

期货基础知识

一、期货是什么&#xff1f;  期货是与现货相对应&#xff0c;并由现货衍生而来。期货通常指期货合约&#xff0c;期货与现货完全不同&#xff0c;现货是实实在在可以交易的货&#xff08;商品&#xff09;&#xff0c;期货主要不是货&#xff0c;而是以某种大众产品如棉花、大…...

NC后端扩展开发

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

nginx vue2+webpack 和 vue3+vite 配置二级目录访问

我们开发中会遇到这样的需求&#xff0c;让我们用服务器nginx部署一个用域名的二级目录来访问项目 https&#xff1a;xxx/二级目录/来放访问项目 目录 思路 1、nginx配置&#xff08;vue2 和 vue3配置的nginx相同&#xff09; 2、vue2webpack的配置 &#xff08;1&#xff0…...

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问

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

算法leetcode|76. 最小覆盖子串(rust重拳出击)

文章目录 76. 最小覆盖子串&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a;进阶&#xff1a; 分析&#xff1a;在这里插入图片描述 题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 76.…...

如何让你的jupyter notebook 排版得像Word(Markdown和网页文件写法)

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

AndroidTV端:酒店扫码认证投屏DLNA

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

基于PyTorch的交通标志目标检测系统

一、开发环境 Windows 10PyCharm 2021.3.2Python 3.7PyTorch 1.7.0 二、制作交通标志数据集&#xff0c;如下图 三、配置好数据集的地址&#xff0c;然后开始训练 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运行闪退

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

ARM 汇编基础知识

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

CRM 自动化如何改善销售和客户服务?

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

Bean 的六种作用域

目录 一、作用域是什么&#xff1f; 1、singleton&#xff08;单例作用域&#xff09; 2、prototype&#xff08;原型作用域&#xff09; 3、request&#xff08;请求作用域&#xff09; 4、session&#xff08;回话作用域&#xff09; 5、application&#xff08;全局作用域&a…...

go语言--锁

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

再见,CSDN

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

MySQL总复习

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

桌面平台层安全随手记录

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

【Docker】 08-Dockerfile

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

web前端盒模型/杭州seo服务公司

GFS文件系统其实是一个网络日志文件系统&#xff0c;通常被用作多台计算机共享同一存储设备…… GFS文件系统其实是一个网络日志文件系统&#xff0c;通常被用作多台计算机共享同一存储设备。由于 GFS是日志文件系统&#xff0c;所以&#xff0c;如果将其应用到单独的一台计算机…...

做的好的响应式网站/百度一下百度首页登录

2019独角兽企业重金招聘Python工程师标准>>> 开发小结&#xff1a; 转载于:https://my.oschina.net/inchlifc/blog/1609084...

官方网站模版/短视频赚钱app软件

补全 insertHead 函数&#xff0c;实现将一个结点插入到一个链表头部的功能。 相关知识 在介绍如何将一个结点插入到一个链表头部之前&#xff0c;我们先假设该链表头指针为 head&#xff0c;则 head 中存放着链表当前头结点的地址。 如果要将指针变量 t 指向的新结点插入到链…...

做网站政府扶持/南京seo培训

内容来源&#xff1a;2017年5月20日&#xff0c;腾讯高级软件工程师吴友强在“中生代技术沙龙系列之互联网大数据”进行《腾讯云大数据实战》演讲分享。IT 大咖说作为独家视频合作方&#xff0c;经主办方和讲者审阅授权发布。阅读字数&#xff1a;1954 | 3分钟阅读嘉宾演讲视频…...

wordpress 付费下载/长沙百度快照优化排名

找1-3三个你所做的创新的关键词 分别在IEEE&#xff0c;sci-hub&#xff0c;知网上按以上关键词查找会议&#xff0c;期刊...

网站制作尺寸/网络营销的四个特点

声音也可以搜索了&#xff0c;可不是MP3搜索&#xff01; 向东博客 Findsounds的声音搜索不同于国内的某些MP3的搜索引擎&#xff0c;它可以可以搜索波…...