Scr*_*evo 2 php variables return
假设以下代码:
<?php
function doStuff($rowCount) {
$rowCount++;
echo $rowCount.' and ';
return $rowCount;
}
$rowCount = 1;
echo $rowCount.' and ';
doStuff($rowCount);
doStuff($rowCount);
doStuff($rowCount);
?>
Run Code Online (Sandbox Code Playgroud)
期望的输出是
1 and 2 and 3 and 4 and
Run Code Online (Sandbox Code Playgroud)
实际输出是
1 and 2 and 2 and 2 and
Run Code Online (Sandbox Code Playgroud)
我认为我理解"回归"在这种情况下是如何运作的.我怎么能最好地完成这个?
Gum*_*mbo 10
您必须将doStuff调用的返回值分配回本地$rowCount变量:
$rowCount = 1;
echo $rowCount.' and ';
$rowCount = doStuff($rowCount);
$rowCount = doStuff($rowCount);
$rowCount = doStuff($rowCount);
Run Code Online (Sandbox Code Playgroud)
或者通过在formal参数前面放置变量作为引用:&$rowCount
function doStuff(&$rowCount) {
$rowCount++;
echo $rowCount.' and ';
return $rowCount;
}
Run Code Online (Sandbox Code Playgroud)
现在函数$rowCount内部的形式参数doStuff指的是doStuff与函数调用中传递给的变量相同的值.