function sum($y) {
$y = $y + 5;
}
$x = 5;
sum($x);
echo $x;
?>
所以我有这个代码.问题是:它输出了什么?答案:5.如何输出10?答案:总和(& $x).
问题是我不明白为什么第一个问题的答案是5.当你得到总和($x)时,它不应该用$x替换函数,所以$x = 5 5 = 10?为什么答案是5?我真的不明白.有人解释了与指针和地址相关的东西,但我不明白.我从来没有理解指针的概念,我用谷歌搜索它,显然在PHP中没有指针,所以我非常困惑.我的朋友说变量是由一个值和该值的内存地址组成的.有人可以解释我,就像我5岁,为什么答案是5而不是10?请
解决方法:
让我们假装$x是一张纸,上面写着5张.
function sum($y) {
$y = $y + 5;
}
这里$y是你所写的价值.你在脑海中添加了5这样的值,但是音符保持不变.
function sum(&$y) {
$y = $y + 5;
}
使用引用运算符(& $y),将文件传递给函数,并覆盖写在其上的内容.
对于像数字这样的原始值,我不会打扰并始终返回您想要的值:
function valuePlusFive($x) {
return $x + 5;
}
$x = 5;
$x = valuePlusFive($x);
标签:php,reference
来源: https://codeday.me/bug/20190713/1449114.html