Principe de récursion de fonction : la fonction s'appelle elle-même (auto-référence). Les paramètres changent à chaque appel. Continuez la récursion jusqu'à ce que la condition de récursion (condition d'arrêt) soit remplie. Application récursive de fonctions : simplification de problèmes complexes (les décomposant en sous-problèmes). Code propre (plus élégant). Exemple : Calculer une factorielle (décomposée en produits). Rechercher les ancêtres d'un nœud dans l'arborescence (recherche récursive).
Le principe et l'application de l'appel récursif de fonction PHP
Qu'est-ce que la récursion de fonction
La récursion de fonction fait référence à une caractéristique auto-référentielle de la fonction qui s'appelle elle-même. Lorsqu’une fonction est appelée en elle-même, on parle d’appel récursif.
Le principe de récursion
Avantages de la récursion
Cas d'application
1. Calculer factorielle
function factorial($number) { if ($number == 1) { return 1; } else { return $number * factorial($number - 1); } } echo factorial(5); // 输出: 120
2 Trouvez les ancêtres des nœuds dans l'arbre
class Node { public $data; public $children; } function findAncestors($node, $target) { if ($node->data == $target) { return [$node->data]; } else { $ancestors = []; foreach ($node->children as $child) { $ancestors = array_merge($ancestors, findAncestors($child, $target)); } if (!empty($ancestors)) { $ancestors[] = $node->data; } return $ancestors; } } $root = new Node(['data' => 'root']); $node1 = new Node(['data' => 'node1']); $node2 = new Node(['data' => 'node2']); $node3 = new Node(['data' => 'node3']); $root->children = [$node1, $node2]; $node2->children = [$node3]; $ancestors = findAncestors($root, 'node3'); var_dump($ancestors); // 输出: ['root', 'node2', 'node3']
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!