Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich PHPs veraltete „create_function()' in PHP 7.2 und höher ersetzen?

Wie kann ich PHPs veraltete „create_function()' in PHP 7.2 und höher ersetzen?

Barbara Streisand
Freigeben: 2024-12-21 21:01:22
Original
779 Leute haben es durchsucht

How Can I Replace PHP's Deprecated `create_function()` in PHP 7.2 and Later?

PHP 7.2 veraltet create_function(): Ein genauerer Blick

In PHP 7.2 erfolgt die dynamische Erstellung von Funktionen durch create_function( ) Funktion ist veraltet. Dies stellt eine Herausforderung für Entwickler dar, die sich in ihren Anwendungen auf diese Funktion verlassen haben. Um dieses Problem anzugehen, erkunden wir eine Lösung, die eine moderne und kompatible Alternative bietet.

Betrachten Sie den folgenden Codeausschnitt:

$callbacks[$delimiter] = create_function(
    '$matches',
    "return '$delimiter' . strtolower($matches[1]);"
);
Nach dem Login kopieren

Hier erstellt create_function() dynamisch eine Funktion, die auf der bereitgestellten Zeichenfolge basiert. In PHP 7.2 und höher wird dieser Ansatz jedoch nicht mehr empfohlen.

Die Alternative: Anonyme Funktionen (Closures)

Um den Code für PHP 7.2-Kompatibilität neu zu schreiben, Sie können anonyme Funktionen, auch als Abschlüsse bekannt, nutzen. Abschlüsse sind anonyme Funktionen, die in Ihrem Code definiert und verwendet werden können. Sie ermöglichen den Zugriff auf Variablen aus dem übergeordneten Bereich und eignen sich daher ideal für die jeweilige Aufgabe.

Der folgende Code zeigt, wie das Original-Snippet mithilfe eines Abschlusses neu geschrieben wird:

$callbacks[$delimiter] = function($matches) use ($delimiter) {
    return $delimiter . strtolower($matches[1]);
};
Nach dem Login kopieren

In dieser Abschluss:

  • function($matches): Definiert die Funktionsparameter, die als Array empfangen werden, das die darstellt stimmt mit einem regulären Ausdruck überein.
  • use ($delimiter):** Deklariert, dass die Variable **$delimiter aus dem übergeordneten Bereich innerhalb des Abschlusses verfügbar sein wird.
  • $delimiter zurückgeben. strtolower($matches[1]): Gibt das gewünschte Ergebnis zurück, das die Verkettung von $delimiter und der Kleinbuchstabenversion des ersten übereinstimmenden Elements ist.

Von Durch den Einsatz anonymer Funktionen können Sie Ihren Code nahtlos auf PHP 7.2 und höher umstellen und dabei die von bereitgestellte Funktionalität beibehalten create_function() unter Einhaltung der neuesten PHP-Standards.

Das obige ist der detaillierte Inhalt vonWie kann ich PHPs veraltete „create_function()' in PHP 7.2 und höher ersetzen?. 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