主要是实参和形参的相互影响性。
引用传递:形参的改变会影响实参
值传递:赋值,不相互影响
参数引用传递
$pams1 = 1; function ssr($params) //这里的参数的没有 &{$params = 4;return $params;}$pams2 = ssr($pams1);echo '1:'.$pams1; // = 1echo "<br>";echo '2:'.$pams2; // = 4echo "<hr>";
$pams1 = 1; function ssr(&$params) //这里的参数有 &{$params = 4;return $params;}$pams2 = ssr($pams1);echo '1:'.$pams1; // = 4echo "<br>";echo '2:'.$pams2; // = 4echo "<hr>";
引用传递的结果会因为引用的参数的改变而改变
函数引用传递
$a = 1;function &func(&$a) {return $a;}$b = func($a); // 这里不是函数引用传递$c = &func($a); // 这是函数引用传递$b = 2;echo "a: $a, b: $b, c: $c. <br />";//输出a: 1, b: 2, c: 1.//可见对$b的修改不会影响$a$c = 3;echo "a: $a, b: $b, c: $c. <br />";//输出a: 3, b: 2, c: 3.//可见对$c的修改会影响$a