Heim  >  Artikel  >  Backend-Entwicklung  >  ## Wie können Sie rekursive anonyme Funktionen in PHP implementieren?

## Wie können Sie rekursive anonyme Funktionen in PHP implementieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 07:54:29283Durchsuche

## How Can You Implement Recursive Anonymous Functions in PHP?

Anonyme rekursive Funktionen in PHP

In PHP bietet das Konzept anonymer Funktionen, auch Lambda-Funktionen genannt, eine bequeme Möglichkeit zur Definition Funktionen inline ohne Angabe eines formalen Namens. Wenn es um Rekursion geht, stehen anonyme Funktionen jedoch vor einer einzigartigen Herausforderung.

Das Problem:

Beim Versuch, eine rekursive anonyme Funktion zu erstellen, kann es so aussehen, als ob die Funktionsname wird nicht korrekt an die Rekursion übergeben. Dieses Problem entsteht, weil anonyme Funktionen im Gegensatz zu regulären Funktionen mit definierten Namen keinen Verweis auf sich selbst haben.

Die Lösung:

Um dieses Problem zu beheben, müssen Sie bestehen die anonyme Funktion als Referenz innerhalb der use-Anweisung. Dies kann durch Hinzufügen eines kaufmännischen Und-Zeichens (&) vor dem Funktionsnamen erreicht werden, wie im folgenden Code gezeigt:

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

print $factorial( 5 ); // Output: 120</code>

Indem Sie die anonyme Funktion als Referenz übergeben, stellen Sie eine Verbindung zwischen dem rekursiven Aufruf und her die ursprüngliche Funktionsdefinition, was ihr den Zugriff auf ihren eigenen internen Zustand ermöglicht. Dadurch funktioniert die Rekursion wie erwartet und Sie können Faktorwerte erfolgreich berechnen.

Das obige ist der detaillierte Inhalt von## Wie können Sie rekursive anonyme Funktionen in PHP implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn