php中函数调用时候的两种参数方式–传值和传地址

在函数调用的时候,我们通常有两种传递方式,一种是传值,一种是传地址,两种有啥区别呢?
现在看看这个实例吧@#!
输入代码:
————————————————————————————
//这是一个函数需要传递的参数是传值形式的
function test($a){ //$a是形参
$a=21; //这里$a需要自己在栈里面开辟空间来存储形参传递过来的值,这时候操作的是自己的栈空间
}

$b=12;
test($b); //这里的$b是实际参数
echo $b;

echo “<br/>”;

//这是一个函数需要传递的参数是传地址形式的
function test2(&$c){ //$c是形式参数
$c=12254; //这里$c只是存放地址,在堆里面就行了,他直接指向的是形参传递进来的地址,这时候更改值就是操作形参那个地址指向的栈
}

$d=5;
test2($d); //这里的$d是实际参数
echo $d;

//可以看到在输出的结果是 12 和 12254
//这是因为第一个额函数传递的是实际的值,$b
?>
——————————————————————————-
可以看到效果:

共有 12 条评论

Top