Fonctions récursives anonymes en PHP
En PHP, le concept de fonctions anonymes, également connues sous le nom de fonctions lambda, offre un moyen pratique de définir fonctions en ligne sans spécifier de nom formel. Cependant, en matière de récursion, les fonctions anonymes sont confrontées à un défi unique.
Le problème :
Lorsque vous essayez de créer une fonction anonyme récursive, il peut sembler que le le nom de la fonction n'est pas transmis correctement dans la récursion. Ce problème se pose car, contrairement aux fonctions classiques avec des noms définis, les fonctions anonymes n'ont pas de référence à elles-mêmes.
La solution :
Pour résoudre ce problème, vous devez passer la fonction anonyme comme référence dans l’instruction use. Ceci peut être réalisé en ajoutant une esperluette (&) avant le nom de la fonction, comme démontré dans le code suivant :
<code class="php">$factorial = function( $n ) use ( &$factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); // Output: 120</code>
En passant la fonction anonyme comme référence, vous établissez une connexion entre l'appel récursif et la définition de fonction originale, lui permettant d'accéder à son propre état interne. Cela permet à la récursion de fonctionner comme prévu et vous pouvez calculer avec succès des valeurs factorielles.
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!