Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Funktionen effektiv in PHP-Arrays speichern?

Wie kann ich Funktionen effektiv in PHP-Arrays speichern?

Linda Hamilton
Linda HamiltonOriginal
2024-11-01 08:06:021050Durchsuche

How can I store functions in PHP arrays effectively?

Funktionen in PHP-Arrays speichern

Es stellt sich die Frage, ob es möglich ist, Funktionen innerhalb von PHP-Arrays zu speichern. Bedenken Sie zum Beispiel Folgendes:

$functions = [
  'function1' => function($echo) { echo $echo; }
];

Ist das ein praktikabler Ansatz? Wenn nicht, welche sind die empfohlenen Alternativen?

Empfohlener Ansatz: Anonyme Funktionen

Die bevorzugte Methode zum Speichern von Funktionen in Arrays umfasst die Verwendung anonymer Funktionen. Wie im obigen Beispiel können sie inline definiert werden:

$functions = [
  'function1' => fn($echo) => $echo
];

Referenzierung externer Funktionen

Beim Umgang mit vordeklarierten Funktionen können Sie sie namentlich als referenzieren Zeichenfolgen:

<code class="php">function do_echo($echo) {
    echo $echo;
}

$functions = [
  'function1' => 'do_echo'
];</code>

Legacy-Methode (PHP < 5.3): create_function

Für ältere Versionen von PHP, die keine anonymen Funktionen unterstützen, kann das Konstrukt create_function sein eingesetzt:

<code class="php">$functions = [
  'function1' => create_function('$echo', 'echo $echo;')
];<p><strong>Aufrufen gespeicherter Funktionen</strong></p>
<p>Unabhängig von der zum Speichern der Funktion verwendeten Methode kann sie direkt (PHP >= 5.4) oder über aufgerufen werden call_user_func/call_user_func_array.</p>
<pre class="brush:php;toolbar:false"><code class="php">$functions['function1']('Hello world!');

call_user_func($functions['function1'], 'Hello world!');</code>

Zusammenfassend sind anonyme Funktionen der empfohlene Ansatz zum Speichern von Funktionen in PHP-Arrays, wobei String-Referenzen für vordeklarierte Funktionen verwendet werden und create_function für ältere PHP-Versionen verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Funktionen effektiv in PHP-Arrays speichern?. 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