当前位置: 首页 > 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…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长&#xff0c;WebRTC作为开源实时通信技术&#xff0c;为浏览器与移动应用提供免插件的音视频通信能力&#xff0c;在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能&#xff0c;对实时…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...