Maison  >  Article  >  développement back-end  >  ## Les fonctions PHP peuvent-elles être à la fois récursives et anonymes ?

## Les fonctions PHP peuvent-elles être à la fois récursives et anonymes ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 02:08:28323parcourir

## Can PHP Functions Be Both Recursive and Anonymous?

Implémentation de fonctions récursives anonymes en PHP

Lorsque l'on se lance dans la tâche de création de fonctions récursives en PHP, on peut aspirer à les envelopper d'anonymat . Cependant, un écueil se présente lorsque l'on tente de se transmettre le nom de la fonction comme argument, comme le démontre le code ci-dessous.

<code class="php">$factorial = function( $n ) use ( $factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>

Cette tentative s'avérera vaine, vous laissant avec une question persistante : PHP peut-il les fonctions doivent-elles être à la fois récursives et anonymes ?

La réponse réside dans la compréhension des mécanismes de référencement des variables. Pour établir une connexion récursive, la fonction doit contenir une référence à elle-même. Ceci peut être réalisé en passant la fonction comme référence à l'aide de l'opérateur '&'. Vous trouverez ci-dessous un exemple de la façon dont cette modification peut débloquer la récursion anonyme :

<code class="php">$factorial = function( $n ) use ( &$factorial ) {
    if( $n == 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>

Avec cet ajustement en place, la fonction PHP transcende les limites de l'anonymat et exerce de manière transparente ses pouvoirs récursifs.

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