变量传值| 学习笔记

简介: 快速学习变量传值。

开发者学堂课程【PHP 基础入门课程(上) :变量传值】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/709/detail/12586


变量传值

 

内容介绍

一、概念

二、步骤

三、区别

四、小结

 

前面已经学习了变量,在实际开发当中,不可避免的会出现不只是说把具体的值赋值给变量,还有可能需要把另外一个变量的值也放到一个变量当中,所以说这个时候就会涉及到变量传值的问题,所以这一节就需要去了解 PHP 到底是如何进行变量传值的,它的机制是什么以及应该怎么去运用它。

 

提问:如何把一个变量的数据赋值给另外一个变量呢?

回答:变量传值。

目标:掌握 PHP 中变量传值的应用和机制。

 

一、概念

变量传值:是指有一个变量已经存在数据,然后将该变量赋值给另外一个变量。

在 PHP 变量传值当中有两种方式,第一种叫做值传递,那就是说把数据给它,此时把一个变量的数据给另一个变量之后,在系统当中会产生两个值,也就是两个变量,变量自身不受彼此影响。

还有一种叫做引用传递,变量代表的数据所在地址传递,这样两个变量就会同时指向同一个值的内存地址,那么此时一个改变会影响另外一个。

 

二、步骤

1、定义变量并且赋值

2、变量传值

怎么操作呢?

有两种方式。如果想要引用传值,就需要定义一个新变量,那么直接把将存在的变量赋值给新变量即可,系统就会自动处理。

第二种方式叫做引用传递,还是把变量赋值给变量,但是此时要明确的告知系统,要的是这个变量所保存的值的内存地址,所以这个地方要给它一个符号,叫做地址符,比较暗的符号。那具体怎么做?来看一个事例,比如说这个时候有一个变量 a=10,如果是值传递的话怎么办呢?直接把这个 a 赋值给到了 b 就可以了,那么系统会把这个 a 里面的值十取出来赋值给 $b ,那么系统里面就会有两个变量 a 和 b ,同时他们有两个值,虽然相同,但是不一样的.如果说深层次的话,它还有一些额外的一些操作。第二种就是引用传值,同样的变量等于值,然后此时在变量复制给另外一个变量的时候,直接取它的地址,所以此时它们会指向同一个东西,那我们来证明一下这个代码。

1 <?php

2

3 #变量传值

4

5

6 #定义变量

7 $a=$b=10; #表示两个变量都等于10

8

9

10 #值传递

11 $c=$a;

12

13 #引用传值

14 $d=$b

15

16 echo $c,$d;

17

首先新建一个例子,这然后此时这个地方要做的事情那就是变量传值,然后接下来首先定义一个变量,我们第一变量的时候这个地方做一个比较简化的一个操作, $a=$b=10。他等于什么呢?这个时候表示两个变量都等于12,有了这个之后,接下来开始第一个值传递,怎么做呢? $c 等于什么?‘

比如说我要取 a 的值就是 $a 。那如果是引用传值的话又定义一个新的变量就可以了,$d=$c ,但是这个跟上面就一样了,等于 $b 此时要怎么办呢?那就要取它的一个地址符号,数字键七上面的这个符号,有了之后,此时如果说输出一个 $c 和 $d ,你会发现出现的结果应该是1010,我看一下  localhost05value-passphp ,那好像两个之间是不是没有什么区别?但是实际上是可以去找出他们的一个区别,我们先回到笔记。

 

三、区别

我们看一下,区别其实就在这,什么意思呢?第一点就是值传递在一个变量发生改变后,另外一个变量不受影响,因为两个是相互独立的,只是共用了一个值而已,但是这个值在系统当中会产生两份。对于引用传递是在一个变量改变后,另外一个变量跟着改变。

这样随便修改对应的一个变量的值,我们就可以看出这个区别了,那回到代码我们来修改一下前面是1010,修改值把 $a 等于1,而我们 $b 等于2,此时当修改之后,再来输出一个这个 $c 和 $d ,虽然修改了 a 和 b ,就看看这个 ab 的修改与 cd ,它拿取的这个 ab 的值看会不会有关系?打开浏览器刷新一下发现前面1010是这个输出的,接下来变成什么?

变成102,102说明一个什么问题呢?说明 a 的改变影响没有影响到 c ,但是 b 的改变影响到了 d ,这样的话就可以看到这两者的区别了。这就是它们之间的一个序列,回到笔记。所以最后再做一个小结。

18 #修改值

19 $a=1;

20 $b=2;

21

22 echo $c,$d;   #10,2,说明 a 的改变,没有影响到 c;但是 b 的改变影响到d

 

四、小结

1、变量传值在开发中经常会碰到

2、变量传值有两种方式

·值传递:

变量保存的值赋值给另外一个变量,这个时候会产生两个变量,两个值,所以说改变其中一个,与另外一个无关,两个变量互不影响。

·引用传递:

变量保存的值的地址传递一个另外一个变量,两个变量指向同一个值的内存地址,所以说一个变量发生改变,内容变化,自然另外一个变量产生变化,彼此影响。

相关文章
|
Java 数据库连接 Nacos
nacos常见问题之2.0.3版本Nacos grpc报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
存储 弹性计算 JavaScript
阿里云优惠价格最低的2核2G配置云服务器可以用来做什么?
阿里云服务器租用价格是根据配置大小决定的,2核2G配置是入门级云服务器,当然还有1核1G、1核2G等更低配置,只是这种配置现在已经很少有人选择了,阿里云的各个活动中推出的最低配置也是2核2G起,其中2核指2个CPU核,2G指的是2G运行内存,本文主要介绍一下目前阿里云2核2G配置云服务器的最新实例清单及收费标准和主要适用场景,以供大家了解2核2G配置云服务器可以用来做什么。
2927 0
阿里云优惠价格最低的2核2G配置云服务器可以用来做什么?
|
SQL Ubuntu 关系型数据库
Ubuntu安装MySQL数据库
**MySQL 的定义** MySQL 是一种开源关系型数据库管理系统。与其他关系型数据库一样,MySQL 将数据存储在由行和列组成的表中。用户可以使用结构化查询语言(通常称为 SQL)定义、操作、控制和查询数据。由于 MySQL 是开源的,因此它的大量功能是在超过 25 年与用户密切合作的过程中开发出来的。
342 0
|
JSON 自然语言处理 数据格式
【自定义插件系列】用自定义插件在阿里云百炼上生成一篇图文并茂的文章
本文介绍了如何在阿里云百炼平台上利用自定义插件生成图文并茂的文章。通过大模型生成小红书风格的文章,提取关键元素生成图像提示词,结合文生图插件生成图片,并最终整合文本与图像输出给用户。整个流程包括多个步骤:从创建对话型工作流开始,经过多次大模型处理、脚本转换和自定义插件操作,到最后完成图文混排的输出。
1045 0
|
人工智能 关系型数据库 MySQL
数据魔力,一触即发 —— Dataphin数据服务API,百炼插件新星降临!
本文通过一个利用百炼大模型平台和Dataphin数据服务API构建一个客户360智能应用的案例,介绍如何使用Dataphin数据服务API在百炼平台创建一个自定义插件,用于智能应用的开发,提升企业智能化应用水平。
733 4
数据魔力,一触即发 —— Dataphin数据服务API,百炼插件新星降临!
|
10月前
|
机器学习/深度学习 人工智能 Serverless
👉「免费满血DeepSeek实战-联网搜索×Prompt秘籍|暨6平台横评」
满血 DeepSeek 免费用!支持联网搜索!创作声明:真人攥写-非AI生成,Written-By-Human-Not-By-AI
5697 10
👉「免费满血DeepSeek实战-联网搜索×Prompt秘籍|暨6平台横评」
|
10月前
|
机器学习/深度学习 算法 Serverless
基于Itô扩散过程的交易策略偏微分方程matlab求解与仿真
本程序基于Itô扩散过程的交易策略偏微分方程,确定了Itô扩散过程,并推导出交易长度的分布和密度函数,计算预期交易频率。核心代码在MATLAB2022A上运行,展示了交易策略的概率分布及卷积结果。算法原理涉及金融衍生品定价与风险管理,利用随机微分方程建模资产价格动态,求解相关偏微分方程以确定最优交易策略。
|
机器学习/深度学习 缓存 自然语言处理
阿里云百炼产品月刊【2024年12月】
12月,阿里云百炼带来多项技术革新与服务升级。本月重点包括VL模型部分规格降价,上线多个新模型,如视觉推理模型qvq-72b-preview、多语言文本统一排序模型gte-rerank和人物视频生成模型videoretalk等。应用模块新增音视频互动、互联网搜索及意图选择等功能,极大丰富了应用场景。此外,新增Context Cache功能和batch调用支持,提升了响应速度并降低了费用。
1427 0
Postman 自定义变量使用详解
Postman是一款强大的API测试工具,支持全局、环境、集合和本地四种变量类型,方便不同场景的测试需求。定义变量涉及全局(在“Manage Environments”&gt;“Globals”),环境(创建新环境并添加),集合(编辑集合&gt;“Variables”),以及脚本内定义的本地变量。使用变量时以`{{variableName}}`格式插入,通过`pm.variables.get()`在脚本中获取。变量优先级:本地&gt;数据&gt;环境&gt;集合&gt;全局,可在Pre-request或Tests脚本中动态设置。掌握变量使用能提升测试效率。
|
人工智能 数据管理 API
精铸智刃·“百炼”成钢——深度探索阿里云百炼大模型开发平台
阿里云百炼平台是一个一站式的大型语言模型开发和应用平台,旨在帮助企业与开发者高效构建和部署定制化的大模型。平台集成了通义大模型、行业模型和第三方模型,提供模型微调、模型调优、模型部署、模型评测等工具链。用户可以轻松创建和管理模型,通过模型广场选择合适的模型,进行模型体验和调优,然后部署模型以供应用调用。
74808 14
精铸智刃·“百炼”成钢——深度探索阿里云百炼大模型开发平台