当前位置:首页 > 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实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现分类

php实现分类

PHP实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…