Heim  >  Artikel  >  Backend-Entwicklung  >  Anonyme PHP-Funktion

Anonyme PHP-Funktion

王林
王林Original
2024-08-29 12:47:23554Durchsuche

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 Probetests

Starten 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
};

Verschiedene Arten von Anwendungsfällen

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:

1. Anwendungsfall 1

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:

Anonyme PHP-Funktion

2. Anwendungsfall 2

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:

Anonyme PHP-Funktion

3. Anwendungsfall 3

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:

Anonyme PHP-Funktion

4. Anwendungsfall 4

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:

Anonyme PHP-Funktion

5. Anwendungsfall 5

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:

Anonyme PHP-Funktion

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:

Anonyme PHP-Funktion

Zusätzlicher Hinweis

  • Die automatische Bindung der aktuellen Klasse an eine anonyme Funktion ist das Standardverhalten ab PHP-Version 5.4. Dies kann durch die Implementierung einer statischen anonymen Funktion verhindert werden.
  • Es verbessert die Leistung, da es zum Definieren einer Funktion verwendet werden kann, die nur einmal verwendet werden soll. Die anonyme Funktion kann nur für den Job verfügbar sein, der von der Funktion ausgeführt werden muss, und bleibt für den Rest des Codes nicht verfügbar.
  • Wenn eine anonyme Funktion verwendet wird, um einer Variablen Werte zuzuweisen, kümmert sich PHP automatisch um die Konvertierung des Ausdrucks in eine interne Klasseninstanz von Closure.

Das obige ist der detaillierte Inhalt vonAnonyme PHP-Funktion. 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
Vorheriger Artikel:Datumsfunktion in PHPNächster Artikel:Datumsfunktion in PHP