参数的传递,可以分为 传值 和 传址 两种,究竟有什么区别呢?
 

function fun($num1,$num2)
{
$num1=100;
$num2=1000;
}
$n1=1;
$n2=10;
fun($n1,$n2);
echo “n1={$n1} n2={$n2}”;
?>

得到的结果是:n1=1 n2=10
 

这一段代码是传值的过程,自定义函数fun的参数传递具体$n1,$n2的值,这个很容易理解,我之前说的自定义函数都是传值,那什么是传址呢?

function fun($num1,&$num2)
{
$num1=100;
$num2=1000;
}
$n1=1;
$n2=10;
fun($n1,$n2);
echo “n1={$n1} n2={$n2}”;
?>

 

这段代码,n1依然是传值,而n2就是传址了。究竟有什么区别呢? 没错..就是在函数的参数中多了一个“&”取地址符,意思就是把内存地址传递给参数,也就是等于$num2=&$n2,得到的结果是n3=1 n4=1000。