值传递:函数范围内对值的任何改变在函数外部都会被忽略
引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:
值传递时,php必须复制值,对于大型的字符串和对象来说会是一个很大的操作。
引用传递则不需要复制,可以提高性能
tips:
例如 a = [ 1, ,2 3 ] ,两次foreach循环中使用同一个 $v ,第一个循环使用 &$V 引用传递,此时 $v 和 a数组中的值共用存储空间,循环之后, $v 和 a [2 ] 是共享同一个存储空间,所以下一个foreach循环中的使用 $v 的时候,实际上改变的是 a 数组中的 a[ 2 ] 的值。避免这种问题可以使用unset ($v) ,或者下一个循环不使用$v ,换一个变量名