PHPで再帰関数の作成する

PHPで再帰関数の作成してみます。

再帰関数とは、ある条件が満たされるまで何度も自分自身を呼び出す関数です。再帰関数は、複雑な数学的計算を行う場合などに使用されます。

なお、関数の中で現在の関数を呼び出す場合に、度を超えて何度も呼び出すと、スクリプトが終了してしまう可能性があります。またコードの書き方を誤ってしまうと、関数呼び出しの無限ループに陥る可能性があります。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■再帰関数を作成する

では、実際にPHPで再帰関数を作成し、どのように動作するのかを確認してみます。

■コード

<?php
function test($number){
    if($number<=10){
        echo "$number <br/>";
        test($number+1);
    }
}

test(1);

今回はtestという関数を宣言します。関数の括弧”()”内には、numberという引数の名を付けます。付けた後に中括弧”{}”を記述し、その中に実行する処理を記述します。

記述する内容は、if文(ステートメント)を使用し、括弧”()”内には、等価比較演算子(<=)を使い「10」という値が同じか小さければtrue(真)という条件を設定します。設定後、true(真)の条件が成立した場合の処理を中括弧”{}”を記述します。中括弧”{}”には、echo文で引数を使って渡された値を出力。出力後、testという関数の中で、testという関数を呼び出します(再帰)。この時、括弧”()”内には引数を使って渡された値に「+1」を追加し、再び関数の中の処理を実行します。

この処理が繰り返し行われ、「10」という値が同じか小さければtrue(真)という条件に該当しなくなると、処理が終了するという内容です。

最後に、宣言した関数の外で、testという関数を呼び出すために、関数の名前と括弧”()”内には、引数に渡す値を入力します。

■実行

では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。

実行してみると、今回宣言したtestという関数内にtestという関数が呼び出されている関数(再帰関数)の中の処理が実行され、指定した条件に該当しなくなると処理が終了することが確認できました。

コメント

タイトルとURLをコピーしました