php值传递和引用传递的区别

本文详细解释了PHP中值传递和引用传递的区别,并通过示例代码展示了两种传递方式的效果。值传递会在函数内部创建变量副本,而引用传递则是直接使用原始变量。文章还讨论了它们的应用场景及优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值传递:在函数范围内,改变变量值得大小,都不不会影响到函数外边的变量值.

引用传递:在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址.

 

值传递  (示例demo)

 1 <?php
 2 function test($i){
 3     $i++;//变量i自增值加1
 4     $a=$i;//变量i赋值给变量a
 5     return $a;//返回变量a
 6 }
 7 
 8 $i=5;//定义变量i
 9 echo $i.'<br>';//输出:5
10 echo test($i).'<br>';//输出:6
11 echo $i;//输出:5

 

引用传递  (示例demo)

 1 <?php
 2 function test(&$i){
 3     $i++;//变量i自增值加1
 4     $a=$i;//变量i的引用传给变量a
 5     return $a;//返回变量a
 6 }
 7 
 8 $i=5;//定义变量i
 9 echo $i.'<br>';//输出:5
10 echo test($i).'<br>';//输出:6
11 echo $i;//输出:6

 

应用场景:

(1)值传递时,php必须复制值.

(2)引用传递则不需要复制值,故引用传递一般用于大字符串或对象.

优缺点:

(1)传值会很耗时间,特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作.

(2)传送引用,函数内的任何操作等同于对传送变量的操作,传送大型变量时效率高.

 

转载于:https://www.cnblogs.com/cxx8181602/p/9413108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值