登録日:
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プログラミング