function f2($n, $a)
{
if ($n == 0)
return 0;
return $a + f2($n-1, $a); // Changed return a... to return $a...
}
echo f2(3,4);
これは12を出力します。しかし、私が考えていることは次のとおりです。誰でも私はこの行を1行ずつ記述するのを助けることができます:関数と再帰
明らかに、$ nと$ aは値の代わりに使用される変数です。この例では、nは3、aは4です。基本ケースはifステートメントであり、nの間のループのように動作します。したがって、nは3であり、nは0に設定されるため、コードは3回ループします。
戻り値は+ f2(n-1、a)です。明らかにそれは数学が計算されるところですが、どうですか?
4 + f2(2, 4)
4 + f2(1, 4)
4 + f2(0, 4)
が、何がそれは合計12を作るために追加ん??:それはこのようにループ
は、私は思います
ので、イムの提示は、私が正しくない場合は、それを理解していれば、何が実際に起こって、どのように出力されているということです何12
F2 'A +($ N-1、$ a)のエコーみてください。あなたのリターン上記'権利を、何を参照起こる – aynber
確かに、試してみましょう。 –
それはエコー: F2 4 +(3-1、4) 4 + F2(2-1、4) 4 + F2(1-1、4) –