有人可以试着解释一下为什么这段代码的输出是2,12; 5,25?
<?php
function swap($x, $y){
$x = $x + 1;
$y = $y + 2;
return $x * $y;
}
$a = 2;
$b = swap($a, $a);
print "$a, $b";
$b = swap(&$a, &$a);
print "$a, $b";
?>
输出:
2, 12
5, 25
答案 0 :(得分:0)
以下是一些解释。我认为你已经理解的第一个电话。我将在代码中解释第二次调用的结果。在这里,您通过引用传递变量。
当您通过引用调用时,将传递对变量的引用,因此任何更改都会反映在原始变量中。
<?php
function swap($x, $y){
//here your variable $a is 2
$x = $x + 1;
// added 1 to $a so $a is now 3
$y = $y + 2;
//again added 2 to variable $a becomes 5
return $x * $y; //returns 5*5=25
}
$a = 2;
$b = swap(&$a, &$a);
print "$a, $b";
?>
希望这个解释有所帮助。