役立つ情報
登録日: 2025-03-23   最終更新日: 2025-03-23

第6章 6.3 再帰関数

6.3.1 再帰関数の概要と使い方

**再帰関数(Recursive Function)**とは、関数の中で自分自身を呼び出す関数のことです。再帰を使うと、複雑な繰り返し処理を簡潔に書くことができます。

基本構文の例:


function sample($n) {
    if ($n <= 0) {
        return;
    }
    echo $n . "\n";
    sample($n - 1); // 自分自身を呼び出す(再帰)
}
sample(5);

ポイント:

  • **終了条件(ベースケース)**を必ず指定すること(無限ループ防止)
  • 引数の値を変化させて、終了条件に近づけていく

6.3.2 典型的な再帰処理の例

階乗(factorial)の計算:


function factorial($n) {
    if ($n === 0) {
        return 1;
    }
    return $n * factorial($n - 1);
}
echo factorial(5); // 120

フィボナッチ数列:


function fibonacci($n) {
    if ($n === 0) return 0;
    if ($n === 1) return 1;
    return fibonacci($n - 1) + fibonacci($n - 2);
}
echo fibonacci(6); // 8

配列の再帰的な走査(多次元配列の表示など):


function printArray($array) {
    foreach ($array as $item) {
        if (is_array($item)) {
            printArray($item); // 再帰的に呼び出す
        } else {
            echo $item . "\n";
        }
    }
}
$data = [1, 2, [3, 4, [5, 6]], 7];
printArray($data);

再帰関数は、正しく使うと非常に便利ですが、処理が複雑になりがちなので、処理の流れを整理して書くことが大切です。適切な終了条件を設けることも忘れずに!


次のページへ
第7章 7.1 クラスとオブジェクト

前のページへ
第6章 6.2 組み込み関数

トップページへ
PHP参考書: はじめてのPHPプログラミング

Copyright 役立つ情報.net