ホームページ  >  記事  >  バックエンド開発  >  関数を PHP 配列に効果的に保存するにはどうすればよいですか?

関数を PHP 配列に効果的に保存するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 08:06:02939ブラウズ

How can I store functions in PHP arrays effectively?

PHP 配列への関数の保存

PHP 配列内に関数を保存できるかどうかという疑問が生じます。たとえば、次の点を考慮してください:

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

これは実行可能なアプローチですか?そうでない場合、推奨される代替方法は何ですか?

推奨されるアプローチ: 匿名関数

配列に関数を格納するための推奨される方法には、匿名関数の利用が含まれます。上の例のように、これらはインラインで定義できます。

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

外部関数の参照

事前に宣言された関数を扱う場合、次のように名前で参照できます。 strings:

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

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

レガシーメソッド (PHP

匿名関数をサポートしていない古いバージョンの PHP の場合、create_function コンストラクトは次のようになります。採用:

<code class="php">$functions = [
  'function1' => create_function('$echo', 'echo $echo;')
];</code>

ストアド関数の呼び出し

関数の保存に使用されるメソッドに関係なく、関数は直接 (PHP >= 5.4) または経由で呼び出すことができます。 call_user_func/call_user_func_array.

<code class="php">$functions['function1']('Hello world!');

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

要約すると、事前に宣言された関数には文字列参照が使用され、従来の PHP バージョンでは create_function が使用できる、PHP 配列に関数を格納するには匿名関数が推奨されるアプローチです。

以上が関数を PHP 配列に効果的に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。