La récursivité se produit lorsqu'une fonction s'appelle elle-même dans son corps de fonction. L'exécution d'une fonction récursive s'appellera à plusieurs reprises, entrant à chaque fois dans un nouveau niveau. Les fonctions récursives doivent avoir une condition de fin. Suivons l'éditeur pour apprendre la récursivité.
L'idée de la récursion est de transformer un problème relativement complexe (problème d'origine) en problèmes à plus petite échelle (sous-problèmes) similaires au problème d'origine à résoudre. Une fois que chaque petit problème est résolu, le dernier gros problème sera naturellement résolu. La méthode récursive n'a besoin que d'un petit nombre de programmes pour décrire les multiples calculs répétés requis dans le processus de résolution de problèmes, ce qui réduit considérablement la quantité de code de programme. Bien entendu, les fonctions récursives ne sont pas parfaites et présentent certains inconvénients, c'est-à-dire qu'elles ne fonctionnent pas efficacement.
Le nombre de niveaux de récursion en PHP n'est pas illimité. Ceci est lié à la limite de mémoire du programme. PHP5
permet à un programme d'utiliser 128M
de mémoire. et la mémoire de 128 Mo est épuisée, le programme générera une erreur fatale et se terminera. PHP7
Permet d'utiliser la mémoire de 256M
.
Une fonction récursive s'appelle au sein de la fonction. L'exécution d'une fonction récursive s'appellera à plusieurs reprises, entrant à chaque fois dans un nouveau niveau. Les fonctions récursives doivent avoir une condition de fin. Lorsque la fonction continue de se répéter jusqu'à ce qu'elle rencontre un mur et revienne, le mur est la condition finale. Par conséquent, la récursivité doit comporter deux éléments, la condition finale et la relation de récursion.
Remarque : Lorsque la fonction est appelée et exécutée, de l'espace sera alloué dans la mémoire pour stocker les données temporaires, il n'y a donc pas de connexion entre les fonctions par défaut lors de l'exécution (sauf pour les fonctions statiques Variables, passées par référence, variables globales). Les variables à l'intérieur sont toutes des variables locales par défaut et n'ont aucune influence les unes sur les autres. Jetons un coup d'œil à un exemple pour approfondir notre impression :
<?php function demo($num){ // if($num == 1 || $num == 2){ return 1; }else{ return demo($num - 1) + demo($num - 2); } } echo '数列第 10 位是:'.demo(10);//数列第 10 位是:55 ?>
Cet exemple vous semble-t-il familier ? Il s'agit de la séquence de Fibonacci. Lorsque nous calculons la séquence de Fibonacci, si nous utilisons d'autres méthodes, c'est encore mieux. est un peu difficile, mais utiliser des fonctions récursives est beaucoup plus efficace.
Tutoriel recommandé : "Tutoriel vidéo PHP"
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!