Maison >développement back-end >tutoriel php >Comment stocker des fonctions dans un tableau en PHP ?

Comment stocker des fonctions dans un tableau en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 16:33:03679parcourir

How Do You Store Functions in an Array in PHP?

Exploration du stockage de fonctions dans des tableaux en PHP

PHP propose plusieurs options pour stocker des fonctions dans des tableaux, chacune avec ses propres implications.

Fonctions anonymes

L'approche privilégiée consiste à utiliser des fonctions anonymes :

<code class="php">$functions = [
  'function1' => function ($echo) {
        echo $echo;
   }
];</code>

Les fonctions anonymes vous permettent de définir une fonction sur le- fly, sans la déclarer au préalable.

Référencement des fonctions nommées

Si vous souhaitez stocker une fonction existante, vous pouvez la référencer par son nom sous forme de chaîne :

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

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

Cette méthode implique de déclarer la fonction en dehors du tableau.

Approche héritée (PHP < 5.3)

Pour les anciennes versions de PHP qui le font ne prend pas en charge les fonctions anonymes, vous pouvez utiliser create_function :

<code class="php">$functions = array(
  'function1' => create_function('$echo', 'echo $echo;')
);<p>Cependant, cette approche est obsolète et doit être évitée si possible.</p>
<p><strong>Invocation de fonctions stockées</strong></p> <p>Quelle que soit la méthode de stockage utilisée, vous pouvez appeler les fonctions directement (PHP >= 5.4) ou avec 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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn