PHP:将变量传递给函数,对变量执行某些操作,然后将其返回

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与函数调用中传递给的变量相同的值.