这两个函数的输出为何不相同?请给我启发。
第一个代码:
function multiply_itself(&$number) {
$number *= $number;
return $number;
}
$my_num = 10;
echo "$my_num" . "<br>"; //Output 10
multiply_itself($my_num);
echo "$my_num"; //Outputs 100
第二个代码:
function doubled($integer) {
$integer *= $integer;
return $integer;
}
$integer = 20;
doubled($integer);
echo "$integer"; //Outputs 20, why not 400?
答案 0 :(得分:1)
第二个示例输出20
,因为参数没有像第一个示例那样通过引用传递 。
将函数签名更改为function doubled(&$integer)
或使用其返回值$integer = doubled($integer);
,并输出400
。