Heim > Backend-Entwicklung > PHP-Tutorial > ## Können PHP-Funktionen sowohl rekursiv als auch anonym sein?

## Können PHP-Funktionen sowohl rekursiv als auch anonym sein?

Susan Sarandon
Freigeben: 2024-10-26 02:08:28
Original
429 Leute haben es durchsucht

## Can PHP Functions Be Both Recursive and Anonymous?

Anonyme rekursive Funktionen in PHP implementieren

Wenn man sich an die Aufgabe macht, rekursive Funktionen in PHP zu erstellen, möchte man sie vielleicht mit Anonymität verschleiern . Allerdings birgt der Versuch, den Funktionsnamen als Argument an sich selbst zu übergeben, eine Gefahr, wie im folgenden Code gezeigt.

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

Dieses Unterfangen wird sich als erfolglos erweisen und Sie mit der Frage zurücklassen: Kann PHP Funktionen sowohl rekursiv als auch anonym sein?

Die Antwort liegt im Verständnis der Mechanismen der Variablenreferenzierung. Um eine rekursive Verbindung herzustellen, muss die Funktion einen Verweis auf sich selbst enthalten. Dies kann erreicht werden, indem die Funktion mit dem Operator „&“ als Referenz übergeben wird. Nachfolgend finden Sie ein Beispiel dafür, wie diese Änderung die anonyme Rekursion entsperren kann:

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

Mit dieser Anpassung überschreitet die PHP-Funktion die Grenzen der Anonymität und übt nahtlos ihre rekursiven Fähigkeiten aus.

Das obige ist der detaillierte Inhalt von## Können PHP-Funktionen sowohl rekursiv als auch anonym sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage