php函数中中$和&$的区别

$a = 1;
function go(&$b) {
$b = $b + 1;
}
go($a);
echo $a;
========系统输出2,因为函数直接修改了$a的数值

$a = 1;
function go($b) {
$b = $b + 1;
}
go($a);
echo $a;
=========系统输出1,因为$b = $b + 1只是在函数内部修改,外部不生效

为什么作为形参$b和&$b不同?请解释下
还有$c=10这样的形式,是直接把10装在c中还是c中装的是10的地址?
如果变量a和变量b相等,应该写成$a=$b还是$a=b?

&表示获取地址,类似指针,和C语言是差不多的,在VB、VFP等语言里面叫引用,其实是一个东西。

在用于函数参数调用的时候,可以这样简单的理解:使用$是传递的变量的一个拷贝,函数里面对参数的修改只在函数执行期间有效,不影响函数外面原来变量的值。使用&传递的就不复制,传递的是变量的引用(也叫指针,相当于快捷方式),那样在函数里面对参数的修改会影响函数外面的变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-15
$ 传值,$a 和 $b 的值互不相干。
&$ 传址,$a 变 $b 跟着变。本回答被提问者采纳
相似回答