再帰処理の考え方は単なるこれだけのこと。

再帰処理の考え方は単なるこれだけのこと。
forやwhile文などでループできない処理の代替えだと
思うとわかりやすいかも。

<?php

print loop(-20);

function loop($i,$ii=1):int
{
    if($i>=5)
    {
        return $i;
    }

    $i++;
    $ii = $ii * $i;
    print "\$i=$i\n";
    print "\$ii=$ii\n";

    if($ii==0)
    {
        $ii = 20;
    }

    return loop($i,$ii);

}