讨论数量:
传值:不指向同一个内存地址
传址:指向同一个内存地址
传值
function func($num){ $num ++; }
$data = 1;
func($data);
echo $data;// 1
// 分析: 将 $data 的值传入到 func 方法,重新开辟一个内存保存 值1 赋值给 $num,和 $data 是两个独立的内存地址,$num 改变不会影响 $data 的值
传址
function func(&$num){ $num ++; }
$data = 1;
func($data);
echo $data;// 2
// 分析:通过 &符,将 $data 的内存地址复制给 $num,$num 和 $data 是一个内存地址,$num 改变,$data 同时改变
传址例2
function func($a, $b, &$status){
$status = $a > $b ? 1 : 0;
}
func(3, 5, $status);
echo $status; // 0
利用传址的应用:博客:不用递归实现无限级分类
推荐文章: