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

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...