Cet article
public function digui($i) { if($i=='1'){ echo "*" ; echo "<br>"; return ; }else{ $this->digui($i-1); for($j=1;$j<=$i;$j++){ echo "*" ; } echo "<br>"; } } 调用 $this->digui(3); 结果 * ** *** function digui2($n){ echo $n." "; if($n>0){ $this-> digui2($n-1); }else{ echo "<-->"; } echo $n." "; }
appelle $this->digui2(3);
résultat
3 2 1 0 <--> ; 0 1 2 3
Exemple d'anatomie d'exécution de fonction récursive (republié par d'autres)
Regardez le code suivant :
<?php function one($num){ echo $num; two($num-1); echo $num; } function two($num){ echo $num; three($num-1); echo $num; } function three($num){ echo $num; } one(3); ?>
Le code ci-dessus effectue le Fonction test() Pour décomposer l'opération, nous pensons :
Lors de l'exécution de la fonction one(3), tout comme la fonction test(), sortez d'abord 3, puis appelez la fonction two(2)
Remarque. que ce qui suit n'a pas été sorti pour le moment. 3.
Continuez, exécutez la fonction two(2), sortez 2 et appelez la fonction three(1) De même, vous n'avez pas le temps de sortir le 2 suivant. .
Exécutez three(1), sortie 1 directement, et n'appelez plus d'autres fonctions,
À ce stade, nous nous demandons si la fonction two() n'a tout simplement pas encore été exécutée. D'accord, puis exécutez la partie inachevée. de la fonction two(). Une fois la fonction two() exécutée, ce qui suit est affiché 2. Commencez ensuite à exécuter la partie inachevée de la fonction one(), c'est-à-dire affichez ce qui suit 3. À ce stade, toutes les fonctions. ont été exécutés.
Ensuite, le résultat de sortie est :
3 2 1 2 3
Recommandations associées :
Explication détaillée de la fonction récursive PHP
Explication de l'appel des fonctions récursives php
Analyse de trois façons d'implémenter les fonctions récursives 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!