Maison  >  Article  >  développement back-end  >  ## Les fonctions PHP peuvent-elles être récursivement anonymes ? Une plongée approfondie dans les références de fonctions et la récursion.

## Les fonctions PHP peuvent-elles être récursivement anonymes ? Une plongée approfondie dans les références de fonctions et la récursion.

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 07:59:02667parcourir

## Can PHP Functions Be Recursively Anonymous?  A Deep Dive into Function References and Recursion.

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 ( &amp;$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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn