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!