PHPにおける再帰処理
プログラミングには、
再帰という概念があります。
これは関数が自分自身を呼び出すことです。
例を見てみましょう。
再帰を使って1から
10までの数字を出力します:
<?php
$i = 1;
function func()
{
global $i;
echo $i;
$i++;
if ($i <= 10){
func(); // ここで関数が自分自身を呼び出している
}
}
func();
?>
このコードがどのように動作するか議論しましょう。
グローバル変数$iと関数funcがあります。
関数内では変数$iの内容がコンソールに出力され、
その後++が実行されます。
変数$iが10以下の場合、
関数は再度呼び出されます。
変数$iはグローバルなので、
関数が新たに呼び出されるたびに、
前回の呼び出しで設定された変数$iの値が保持されます。
結果として、$iが10より大きくなるまで、
関数は自分自身を呼び出し続けることになります。
この場合、ifなしで関数を起動することはできないことに注意してください。
もしそうしてしまうと、関数の無限呼び出しが発生します。