Les fonctions PHP peuvent-elles être récursivement anonymes ?
En PHP, la possibilité de créer une fonction à la fois récursive et anonyme a laissé les programmeurs perplexes. Cette question se pose en raison de l'utilisation typique de noms de fonctions pour la récursivité. Cependant, comme le démontre l'exemple fourni, une fonction anonyme récursive peut effectivement être implémentée en PHP.
Le code fourni, tentant de calculer la factorielle d'un nombre en utilisant la récursion dans une fonction anonyme, est confronté à un défi lors de la transmission le nom de la fonction. Pour résoudre ce problème, il est crucial de passer la fonction comme référence. En ajoutant une esperluette (&) avant $factorial dans l'instruction use, la fonction elle-même devient disponible au sein de la fonction anonyme.
Voici le code modifié :
<code class="php">$factorial = function( $n ) use ( &$factorial ) { if( $n == 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 );</code>
Avec cette modification, le la fonction $factorial peut désormais se référencer de manière récursive, permettant au calcul factoriel souhaité de fonctionner correctement.
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!