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的知识,请关注我们哦!

相关推荐
果子⌂13 分钟前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
三体世界44 分钟前
TCP传输控制层协议深入理解
linux·服务器·开发语言·网络·c++·网络协议·tcp/ip
随心点儿1 小时前
使用python 将多个docx文件合并为一个word
开发语言·python·多个word合并为一个
不学无术の码农1 小时前
《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
开发语言·python
tomcsdn311 小时前
SMTPman,smtp的端口号是多少全面解析配置
服务器·开发语言·php·smtp·邮件营销·域名邮箱·邮件服务器
EnigmaCoder1 小时前
Java多线程:核心技术与实战指南
java·开发语言
大白的编程日记.3 小时前
【计算机基础理论知识】C++篇(二)
开发语言·c++·学习
网小鱼的学习笔记3 小时前
python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
开发语言·python·mongodb
Q_Q5110082853 小时前
python的保险业务管理与数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
亮1113 小时前
Maven 编译过程中发生了 Java Heap Space 内存溢出(OutOfMemoryError)
java·开发语言·maven