Fonction récurs...LOGIN

Fonction récursive de fonction personnalisée PHP

Fonction récursive, la récursion n'est qu'un nom, et les régulations de la fonction récursive : le corps de la fonction appelle la fonction elle-même.

Cela nécessite une certaine profondeur de réflexion et de compréhension. Pendant le processus d'apprentissage de ce chapitre, si vous n'arrivez vraiment pas à suivre votre réflexion, vous pouvez sauter ce chapitre sans étudier.

Parce que, dans le travail réel, la récursivité est utile, mais l'utilisation ne sera pas très importante. La récursivité est principalement utilisée dans le travail réel : lors de l'exploitation de fichiers et de dossiers.

Solution :
Au cas où votre réflexion ne pourrait pas suivre ce chapitre, vous pouvez directement comprendre les principes de ce bloc et utiliser des fonctions de traitement de fichiers et de dossiers prêtes à l'emploi ou des classes de traitement de fichiers.

Permettez-moi de parler de quelques angles morts dans la réflexion :

1. Le code est exécuté de haut en bas. Tous les codes n'ont pas de caractères d'arrêt tels que exit, et la fonction doit l'être. complété.

2. Si la fonction passe de la fonction A à la fonction B, la fonction B doit être exécutée avant d'exécuter le code restant de la fonction A.

3. La fonction récursive doit être capable de terminer l'exécution et avoir une condition de fin, sinon la fonction entrera dans une boucle infinie. La fonction s'exécutera pour toujours.

Écrivons un code pour le comprendre :

<?php

$num = 10;


//调用一次函数A();
A($num);



function A( $arg ){

   echo $arg;

   //在函数A里面去,跑去执行函数B去了
   B($arg);


   echo '我们需要不断的努力,努力到上天都为我们感动';


   echo $arg.'<br />';
}

function B( $number ){

       echo $number;


       echo '俺是狗蛋,执行完了<br />';

}


?>

A travers l'exemple ci-dessus, vous trouverez :

1. À mi-chemin de l'exécution de la fonction A, courez pour l'exécuter Fonction B

2. Après avoir exécuté la fonction B, la première chose affichée est : "Je suis une garce, l'exécution est terminée", puis la prochaine chose affichée est : "Nous devons continuer à travailler dur, et travaillez dur jusqu'à ce que Dieu soit touché »

3. Cela prouve ce que nous appelons le point aveugle de la pensée. Le code est exécuté de haut en bas, et le code doit être exécuté jusqu'à son achèvement.

Écrivons un code récursif simple et laissons la fonction s'appeler elle-même.

<?php

$n = 2;

function dg( $n ){

   echo $n.'<br />';

   $n = $n - 1;

   if($n > 0){
       //在函数体内调用了dg自己哟
       dg($n);

   }else{

       echo '--------------';
   }

   echo '俺是狗蛋,俺还没执行' . $n . '<br />';

}
?>

Devinez quel est le résultat ? Pourquoi est-ce ?

Raisonnons attentivement :

1. La première fois que dg() est appelé, le nombre $n = 2 est passé à dg, et 2 est affiché en premier

2 . Ensuite, définissez la valeur de $n - 1 $n sur 1

3. Déterminez ensuite si $n est supérieur à 0, il doit être supérieur à 0, alors appelez vous-même la récursion et exécutez-vous à nouveau.

4. Lors de la deuxième exécution de votre propre dg(), l'écho du bas 'Je suis un chien, je ne l'ai pas encore exécuté' $n'; exécuté encore arriver. Attendez la fin de l'exécution avant d'exécuter

5.$n est égal à 1 à ce moment, donc 1 est affiché.

6.$n se soustrait une fois, et le résultat de $n est 0

7.$n n'est définitivement pas vrai s'il est supérieur à 0, donc un message s'affiche : " ------ --------"

8. A ce moment il est temps d'exécuter : echo 'Je suis une garce, je ne l'ai pas encore exécuté' . $n '

';

9. La deuxième exécution de dg() est terminée. Le premier code dg() n'a pas encore été exécuté, donc le code restant du point 4 est exécuté.


section suivante

<?php $n = 2; function dg( $n ){ echo $n.'<br />'; $n = $n - 1; if($n > 0){ //在函数体内调用了dg自己哟 dg($n); }else{ echo '--------------'; } echo '俺是狗蛋,俺还没执行' . $n . '<br />'; } ?>
soumettreRéinitialiser le code
chapitredidacticiel