参数的传递,可以分为 传值 和 传址 两种,究竟有什么区别呢?
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。