关于php按值传递和按引用传递问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于php按值传递和按引用传递问题相关的知识,希望对你有一定的参考价值。

首先让我们来看一段代码:

01<!--?php
02$a = 111;
03$b = 222;
04function cz(& $a,$b){
05        $a += $b;
06        $b += 4;
07    }
08cz($a,$b);
09echo ‘$a=‘.$a.‘</br---->‘;
10echo ‘$b=‘.$b;
11?>

  这段代码,首先在函数cz外定义了两个变量$a和$b,然后在函数cz内,对两个变量进行了相应的操作,再调用函数cz,最后将$a和$b输入。我们都知道函数的作用域问题,在函数内部修改的值,只能在函数内部反应出来,在函数外是不能得不到这种变化的。现在我们看下这个这段代码输出的结果:

1$a=333;
2$b=222;

$b的值和预期的相同,输出的是222,但是$a的值却发生了变化,这是因为在函数的参数前多了一个“&”的原因,正是因为这个符号,所以让$a能够得到在函数cz内的变化,所以$a的值才会发生改变。

  所以按值传递和按引用传递的区别就在这里了,如果想将一个变量在函数内修改的值作用到函数外的变量上时,只需要在相应的参数前面加上“&”就可以了。


本文出自 “刘博方的博客” 博客,请务必保留此出处http://liubofang.blog.51cto.com/11162557/1879026

以上是关于关于php按值传递和按引用传递问题的主要内容,如果未能解决你的问题,请参考以下文章

Python按值传递参数和按引用传递参数

Java的按值传递和按引用传递解说

按引用传递然后复制和按值传递在功能上是不是不同?

(转)Java:按值传递和按引用传递详细解说

在 C# 中将 REF 和 OUT 关键字与按引用传递和按值传递一起使用

js按值传递和按引用传递