//rejoindre les noms des sous-répertoires dans le chemin du répertoire courant //et envoyer les chemins complets des sous-répertoires dans le tableau. //allez à la prochaine sous-répertoire alphabétique, que vous ne l'avez pas encore visité. //remonter d'un répertoire si chaque sous-répertoire du répertoire courant //a été visité. } Il ya quatre segments de code dans la fonction récursive. Pour dresser la liste des sous-répertoires de tout répertoire, ce répertoire doit être le répertoire courant. Lire le contour de la fonction ci-dessus.
Le premier segment de code obtient les noms sans les chemins du répertoire courant. La première fois que la fonction est appelée, le répertoire courant est le répertoire racine. Le deuxième segment forme les chemins complets des sous-répertoires et les envoie à la matrice. Le troisième segment change le répertoire courant à celui d'un sous-répertoire, dont il n'a pas encore pris de courant. Il va aller dans un sous-répertoire suivant un ordre alphabétique des sous-répertoires.
La fonction récursive est appelée à plusieurs reprises; si, à un des itérations n'y a pas de sous-répertoire, puis le troisième segment de code est ignoré. Lorsque tous les sous-répertoires possibles ont été faites au cours d'une branche ascendante plupart de l'arborescence des répertoires, la fonction doit se déplacer jusqu'à; qui est la fonction doit faire le courant de répertoire parent afin qu'il puisse ensuite faire le sous-répertoire suivant du parent, de courant. Le but de la quatrième segment de code est de passer de la fonction Up.
Si le répertoire parent à faire actuelle est de devenir le répertoire ci-dessus le répertoire racine, alors qu'au-dessus de répertoire est pas faite en cours; le quatrième segment de code prend soin de cela. Le code de fonction récursive Le segment de code qui affiche les chemins dans le tableau pour le navigateur ne fait pas partie de la fonction récursive. Le code de la fonction récursive est donnée ci-dessous: searchTree fonction () {global $ aboveDir, dirArr $; $