Heim > Artikel > Backend-Entwicklung > Anonyme PHP-Funktion
Die Funktion, die ohne spezifischen Namen erstellt und als Eingabeargument im PHP-Skript verwendet werden kann, wird als anonyme Funktion bezeichnet. Diese Funktionen werden mithilfe der Closure-Klasse implementiert. Der Vorgang zum Zuweisen einer anonymen Funktion zu einer Variablen ist derselbe wie bei jeder anderen Zuweisungssyntax. Durch Übergabe einer Variablen aus dem übergeordneten Bereich an das Sprachkonstrukt kann eine anonyme Funktion aus dem untergeordneten Bereich die Variable erben.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
Eine anonyme Funktion trägt keinen Namen:
function($arg1,$arg2,….,$argN){ //The definition for the anonymous function };
Es gibt verschiedene Ziele, die durch die Verwendung anonymer Funktionen bei der Entwicklung einer effektiven PHP-Codierung erreicht werden können. Eine anonyme Funktion weist je nach Art des Anwendungsfalls, für den die Funktion verwendet wird, unterschiedliche Funktionalitäten auf.
Fünf Hauptanwendungsfälle sind unten aufgeführt:
Anonyme Funktion kann verwendet werden, um Variablen Werte zuzuweisen. Es folgt der gleichen Syntax wie andere Zuweisungsvorgänge.
Beispiel:
Der folgende Codeausschnitt wird verwendet, um den angegebenen Eingabewert einem Ausgabewert zuzuweisen und den Wert mithilfe der Ausgabevariablen zu drucken.
Code:
<?php $Var = function($value) //Anonymous function is used to assign value to variable $Var { //Anonymous function definition printf("The assigned value is: %s\r\n", $value); }; //Calling the anonymous function using the assigning variable $Var with a string value input $Var('A string value is assigned'); //Calling the anonymous function using the assigning variable $Var with a integer value input $Var(35); ?>
Ausgabe:
Die angegebenen Eingabewerte vom Typ String und Integer werden durch den anonymen Funktionsaufruf wie unten gezeigt gedruckt:
Die Funktion zur Definition einer anonymen Funktion spielt eine wichtige Rolle bei der Erstellung einer Inline-Callback-Funktion.
In diesem Fall kann die anonyme Funktion als Eingabeargument an eine andere Funktion übergeben werden.
Der folgende Code wurde geschrieben, um eine Rückruffunktion preg_replace_callback zu definieren.
Eine anonyme Funktion als einen ihrer Eingabeparameter haben.
Code:
<?php //creating callback function using PHP anonymous function // preg_replace_callback is the calling function echo preg_replace_callback('~-([a-z])~', function ($input) { //Anonymous function definition return strtoupper($input[1]); }, 'This is an anonymous callback function!');//End of the definition of the callback function ?>
Ausgabe:
Bei der Ausführung des PHP-Skripts wird die Rückruffunktion ausgelöst und die Ausgabe der anonymen Funktion wird wie unten gezeigt im Ausgabefenster gedruckt:
Eine anonyme Funktion kann zum Erben von Variablen aus dem übergeordneten Bereich verwendet werden.
Dieser Anwendungsfall unterstützt keine superglobalen Variablen, $this-Variablen oder Parametervariablen mit demselben Namen.
Beispiel:
Code:
<?php $input_text = 'Initial message'; $outputVar = function () { //Anonymous function definition var_dump($input_text); }; $outputVar(); // Inherit the variable $input_text by value $outputVar = function () use ($input_text) { var_dump($input_text); }; $outputVar(); // Inherit the variable $input_text by-reference $outputVar = function () use (&$input_text) { var_dump($input_text); }; $outputVar(); // Modifying the variable value of parent scope from the function call $input_text = ' Next message'; $outputVar(); // Inserting regular argument along with parent scope variable $outputVar = function ($arg) use ($input_text) { var_dump($arg . ' ' . $input_text); }; $outputVar("Random message"); ?>
Ausgabe:
Die resultierende Ausgabe des obigen Codes wird wie folgt erzeugt:
Ab der PHP-Version 5.4 ist die Klasse im Falle der Deklaration einer Klasse standardmäßig an die anonyme Funktionsfunktion gebunden. Dadurch wird die Variable „$this“ im Rahmen jeder innerhalb der Klasse definierten anonymen Funktion verfügbar.
Beispiel:
Code:
<?php class AnonymousClass { public function Classfunction() { return function() { var_dump($this); //Retrieves the dump information of class object using $this variable,once //it is created }; } } $Classobject = new AnonymousClass; $function = $Classobject->Classfunction(); $function(); ?>
Ausgabe:
Die Dump-Informationen des Objekts aus der Klasse „AnonymousClass“ werden wie unten gezeigt im Ausgabefenster gedruckt:
Wenn bei der Erstellung eines Objekts ein Abschluss aus dem Bereich desselben Objekts instanziiert und registriert wird, wird ein Zirkelverweis erstellt, der die sofortige Zerstörung des Objekts verhindert. Durch die Anwendung einer statischen anonymen Funktion kann das Skript die Verzögerung überwinden.
Die vergleichende Analyse der Verwendung der regulären anonymen Funktion und der statischen anonymen Funktion wird durch das folgende Beispiel veranschaulicht.
Beispiel:
Fall 1: Ohne Verwendung der statischen anonymen Funktion
Code:
<?php class TrialClass { private $AnonymousVar; public function __construct() { $this->AnonymousVar = function () { }; } public function __destruct() { echo "Destruction function is called"; } } new TrialClass; echo "After the object is being defined"; echo "\n"; ?>
Ausgabe:
Fall 2: Einschließlich statischer anonymer Funktion
Code:
<?php class TrialClass { private $AnonymousVar; public function __construct() { $this->closure = self::createClosure(); } public static function createClosure() { return function () { }; } public function __destruct() { echo "Destruction function is called"; } } new TrialClass; echo "\n"; echo "\n"; echo "After the object is being defined"; echo "\n"; echo "\n"; ?>
Ausgabe:
Das obige ist der detaillierte Inhalt vonAnonyme PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!