php sql 赋值给变量赋值吗_PHP的传值赋值和引用赋值的区别

今天由源码时代

PHP变量间的赋值方式

28b2518c01ebfd74dc11854332d4e448.png

将a变量的值赋值给b变量有两种赋值方式:

1.传值赋值

2.引用赋值

1、传值赋值

传值赋值是将变量的值复制出一份新的值(值是一样的),只是在内存中出现两份不同的内存空间。将新值内存空间地址赋值给新的变量名字。修改两个变量的值时还不影响。

例如:将$a变量的值复制出一份存放到$b变量中.

c109f4dfe07c5056b20c31e72c73a9a0.png

因为他们各自指向自己的内存区域.

0a3912a4712bdc51c63e46fadeb5deb0.png

2、引用赋值

引用赋值是将变量的引用复制出来一份(新的引用还是指向原来的值)。

语法:

aeb81123126c5cbe54e4e0567d4ad582.png

将$a变量引用复制出一份作为$b变量的引用. 两个变量的引用指向同一个内存空间.

通过&符号表示在赋值过程值使用引用赋值.

c7c41b7b8bf447c90ede937f77f43ccc.png

修改$a,$b的值都是修改值空间. 会相互影响两个变量的值.

9eb2b488aef477934b70a51747c2b5d7.png

3、默认的传值方式

在PHP中每种数据类型默认的传值方式不一样:

e49b06f78953596607ab9dc136a0bda3.png

4、数组赋值

数组赋值非常特殊,它存在着写复制机制。

30236f5934c555cf800e95e3b304d71b.png

以上代码是引用赋值,因为默认情况下引用赋值,会将arr1的引用赋值给arr2变量,arr1和arr2两个变量指向同一个内存空间["张三","王五","赵六"]

当修改其中一个变量的值就会复制出新的内存,然后再新的内存中修改,从而将修改的变量指向新的内存 。

2f1858028e6294adc66936c97076d87f.png

16dafb536f789bc1dc2fb48661cc6ce4.png

5、选择哪种赋值方式呢?

如果变量a指向的内存存储大量数据,将变量a赋值给变量b,建议使用地址赋值,这样可以节约内存的使用率. 但b变量值的改变就会影响到a.

本文由源码时代php培训学科老师原创,转载需注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值