PHP8的变量-PHP8知识详解

昨天我们讲解了PHP8的常量,今天讲解PHP8的变量。常量有定义常量和预定义常量,变量呢?那就没有定义变量了,那叫给变量赋值,但是还是有预定义变量的。下面就给大家讲解什么是变量、变量赋值及使用及预定义变量。

一、什么是变量?

变量是计算机编程中的一个重要概念。它是用来存储和表示数据的一种方式。可以将变量看作是一个容器,用于存储各种类型的值,如数字、文本、布尔值等。

在编程中,变量有一个名称(也称为标识符),可以通过这个名称来引用和操作变量中存储的值。通过给变量赋值,可以将特定的值存储在变量中,并在程序的其他地方使用。

变量在程序中的作用非常重要,它们可以用来存储中间结果、用户输入、配置信息等。通过使用变量,程序可以更加灵活和可扩展,可以根据需要动态地改变存储的值。

二、变量赋值及使用

在PHP8中使用变量,不需要进行定义(声明)变量,只需要给变量赋值即可。

PHP8中变量名称使用"$+标识符"表示。标识符是有字母、数字和下划线组成,并且不能以数字开头。特别提醒的是变量是区分大小写的。

正确的写法举例:

复制代码
<?php
$PHP
$https://www.phpfw.com/tag/python/
$php8
$_class
?>

错误的写法举例:

复制代码
<?php
$1688   //变量名不能以数字开头
$!love  //变量名不能以字母或下划线以外的字符开头
?>

变量赋值是指给变量赋予一个具体的数据值,对于字符串和数字类型的变量,可以通过操作符"="来实现,其语法格式为:

复制代码
$变量名 = 变量值

PHP8的赋值有两种,一个传值赋值,一个是引用赋值。区别如下:

1、传值赋值:使用操作符"="直接将赋值表达式的值赋给另一个变量。

2、引用赋值:将赋值表达式的内存空间的引用赋给另一个变量。需要在"="右侧的变量前面加一个"&"符号即可。

在引用赋值的时候,两个变量将会指向内存中的同一储存空间,所以任意一个变量的变化都会引起另一个变量的变化。

下面给一段实际代码来示范:

复制代码
<?php
$a1 = "php";     //给变量$a1赋值
$a2 = $a1;       //使用$a1初始化$a2
$a1 = "python";  //改变变量$a1的值
$a3 = & $a1;     //使用引用赋值,$a3被赋值为$a1
echo $a1;        //输出变量$a1的值
echo "<br>";     //换行显示
echo $a2;        //输出变量$a2的值
echo "<br>";     //换行显示
echo $a3;        //输出变量$a3的值
?>

以上代码运行结果为:

三、预定义变量

在PHP8中,和预定义常量一样,PHP8中也有预定义变量。PHP8提供了很多实用的预定义变量。

比如我们登录网站的后台,很多的PHP的网站后台显示:本站的服务器IP地址、本站所在的主机名称、正在浏览当前页面的IP地址、服务器操作系统名称、访客操作系统名称等信息,这些都是PHP8的预定义变量。

1、$_SERVER:包含了关于当前脚本的服务器和执行环境的信息,如请求的方法、URL、用户代理等。

2、$_GET:包含通过GET方法传递给当前脚本的变量和值。

3、$_POST:包含通过POST方法传递给当前脚本的变量和值。

4、$_REQUEST:包含了通过GET、POST和COOKIE方法传递给当前脚本的变量和值。

5、$_COOKIE:包含了通过HTTP Cookies传递给当前脚本的变量和值。

6、$_SESSION:包含了当前会话中存储的变量和值。

7、$_FILES:包含了通过HTTP文件上传机制传递给当前脚本的文件相关的变量和值。

8、$_ENV:包含了通过环境变量传递给当前脚本的变量和值。

9、$GLOBALS : 超全局变量,用于访问全局作用域中的全局变量。它是一个包含了当前脚本中所有全局变量的关联数组。在 PHP 8中,全局变量是在脚本的任何地方都可访问的变量,而超全局变量是在脚本的任何地方都可访问的预定义变量。

当然还有很多的预定义变量,就拿$_SERVER来说,就有很多的子预定义变量的参数,本文就不一一列出来了,大家有所了解就行了。

这些预定义变量提供了方便的访问方式,以便在PHP脚本中获取和操作相关信息。你可以使用它们来处理用户输入、访问服务器信息、处理文件上传等任务。想学习更多的PHP8的知识,请关注我们哦!

相关推荐
dialect_6 小时前
KMP算法
开发语言·c++·算法
总要学点什么7 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
开开心心_Every9 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c9 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌9 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
超级架构师10 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮11 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Escalating_xu11 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
LMT流氓兔11 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真11 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法