当前位置:首页 > PHP

php 递归 实现

2026-03-12 17:53:51PHP

PHP 递归实现方法

递归是一种函数调用自身的技术,适用于解决分治或重复子问题的情况。以下是几种常见递归实现的示例:

阶乘计算

php 递归 实现

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

斐波那契数列

function fibonacci($n) {
    if ($n == 0 || $n == 1) {
        return $n;
    }
    return fibonacci($n - 1) + fibonacci($n - 2);
}
echo fibonacci(10); // 输出55

目录遍历

php 递归 实现

function scanDirectory($dir) {
    $files = scandir($dir);
    foreach ($files as $file) {
        if ($file != '.' && $file != '..') {
            $path = $dir . '/' . $file;
            if (is_dir($path)) {
                scanDirectory($path); // 递归子目录
            } else {
                echo $path . "\n";
            }
        }
    }
}
scanDirectory('/path/to/directory');

注意事项

  • 递归必须包含基线条件(终止条件),否则会导致无限循环
  • 深度过大的递归可能导致栈溢出,PHP默认调用栈深度约为100-200层
  • 对于性能敏感场景,可考虑使用迭代替代递归

尾递归优化示例 PHP本身不支持尾调用优化,但可手动改写:

function factorial($n, $accumulator = 1) {
    if ($n <= 1) {
        return $accumulator;
    }
    return factorial($n - 1, $n * $accumulator);
}

标签: 递归php
分享给朋友:

相关文章

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form action=…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…

php 实现md5

php 实现md5

使用 PHP 内置函数实现 MD5 PHP 提供了 md5() 函数,可以直接计算字符串的 MD5 哈希值。该函数接受一个字符串参数,返回 32 字符的十六进制哈希值。 $string = "H…

php 实现表单验证

php 实现表单验证

表单验证基础方法 使用内置函数和条件判断进行基础验证,例如检查空值、长度限制等: $name = $_POST['name'] ?? ''; $email = $_POST['email'] ??…

php 实现扫码登录

php 实现扫码登录

PHP 实现扫码登录的流程 扫码登录的核心流程分为两部分:前端生成二维码并轮询状态,后端验证扫码状态并返回登录凭证。以下是具体实现方法: 生成唯一二维码 创建临时令牌 在用户访问登录页面时,后端生…