变量传值| 学习笔记

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

开发者学堂课程【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、变量传值有两种方式

·值传递:

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

·引用传递:

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

相关文章
|
7月前
|
XML Java 数据库连接
Mabtis传值方式
Mabtis传值方式
360 0
|
8月前
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
40 0
|
3天前
传址与传值
传址与传值
17 0
|
JSON 数据格式
想学变量的解构赋值?看完这一篇就够了
想学变量的解构赋值?看完这一篇就够了
50 0
|
PHP 开发者
对象传值|学习笔记
快速学习对象传值
61 0
|
存储 PHP 开发者
参数传值方式|学习笔记
快速学习参数传值方式
84 0
参数传值方式|学习笔记
|
存储 Java Go
函数参数的传递方式 | 学习笔记
简介:快速学习函数参数的传递方式
74 0
函数参数的传递方式 | 学习笔记
|
存储 Unix PHP
变量的引用赋值与传值赋值
一、使用 memory_get_usage() 查看PHP内存使用量 1. 传值赋值
 变量的引用赋值与传值赋值
|
存储 开发者 Python
变量和对象|学习笔记
快速学习 变量和对象
|
存储 C语言
指针妙用之将函数中形参的值传递给实参
指针妙用之将函数中形参的值传递给实参