Maison  >  Article  >  développement back-end  >  Qu'est-ce que la fonction récursive PHP et un exemple simple d'explication

Qu'est-ce que la fonction récursive PHP et un exemple simple d'explication

伊谢尔伦
伊谢尔伦original
2017-05-15 13:02:178153parcourir

Qu'est-ce que la fonction récursive de PHP ?

La fonction récursive est une fonction auto-appelante, qui s'appelle directement ou indirectement dans le corps de la fonction, c'est-à-dire que l'appel imbriqué de la fonction est la fonction elle-même. Habituellement, une instruction de jugement conditionnel est attachée à ce type de fonction pour déterminer si un appel récursif doit être exécuté, et l'action d'appel récursif de la fonction est terminée dans des conditions spécifiques, et le contrôle du processus en cours est renvoyé au précédent. fonction de couche à exécuter. Par conséquent, lorsqu'une fonction qui effectue un appel récursif ne dispose pas d'instructions de jugement conditionnel supplémentaires, une erreur de boucle infinie peut se produire.

Le plus grand avantage de l'appel de fonction récursif est qu'il peut simplifier les procédures d'appel répétées complexes dans le programme et peut utiliser cette fonctionnalité pour effectuer des opérations plus complexes. Par exemple, des opérations telles que des listes, des menus arborescents dynamiques et une traversée de répertoires. Les fonctions non récursives correspondantes, bien qu'efficaces, sont difficiles à programmer et relativement illisibles. L'objectif de la programmation moderne est avant tout la lisibilité. Avec l'amélioration continue des performances du matériel informatique, les programmes privilégient la lisibilité plutôt que l'efficacité dans un plus grand nombre de situations. Par conséquent, l'utilisation de fonctions récursives pour mettre en œuvre les idées du programme est encouragée.

Un exemple d'appel récursif simple est le suivant :

<?php
 //声明一个函数,用于测试递归
 function test($n){
   echo $n." ";        //在函数开始输出参数的值
   if($n>0){                //判断参数是否大于0
     test($n-1);            //如果参数大于0则调用自己,并将参数减1后再次传入
   }else{                   //判断参数是不大于0
     echo "<-------->  ";
   }
   echo $n." ";
 }
 test(10);                   //调用test函数将整数10传给参数
?>

Une fois le programme exécuté, les résultats suivants sont affichés :

10 9 8 7 6 5 4 3 2 1 0 <--------> 0 1 2 3 4 5 6 7 8 9 10

Trouvez la raison pour laquelle les nombres de la seconde moitié du résultat sont affichés dans l'ordre direct

Explication : dans l'exemple ci-dessus, une fonction test() est déclarée, ce qui nécessite un entier paramètre. Appelez la fonction test() en dehors de la fonction en passant l'entier 10 comme argument. Dans le corps de la fonction test(), le premier code affiche la valeur du paramètre et un espace. Déterminez ensuite si la condition est vraie, et si c'est le cas, appelez-vous et réduisez le paramètre de 1 et transmettez-le à nouveau. Lorsqu'il commence à être appelé, il appelle la couche externe à la couche interne, et la couche interne appelle la couche interne jusqu'à ce que la couche la plus interne doive se terminer en raison de conditions ne le permettant pas. Lorsque la plus grande quantité de mémoire est terminée, 85035d4d2c2d63d3f587aee1c9d8129e est affiché comme délimiteur. Le code après l'exécution de l'appel affiche la valeur du paramètre et un espace, et il reviendra à la couche externe pour. poursuivre l'exécution. Lorsque la couche externe se termine, revenez à la couche externe pour continuer l'exécution et repoussez couche par couche jusqu'à ce que la couche la plus externe se termine. Le résultat une fois l’exécution terminée est le résultat que nous avons vu ci-dessus.

Ce qui précède est l'explication des fonctions récursives PHP et des exemples simples. Dans le chapitre suivant, nous présenterons trois méthodes d'implémentation des fonctions récursives en PHP.

【Tutoriels associés recommandés】

1. "php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP "

2. Un ensemble complet de tutoriels vidéo sur la programmation PHP de l'entrée au master

3

Tutoriels vidéo pratiques 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn