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 サイトの他の関連記事を参照してください。