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>
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>
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!