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

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...