特定のクラス ファイルをインポートし、このクラス ファイルを呼び出す場合、call_user_func_array 関数をさまざまなパラメーターに応じて 2 つ示します:
<?php $func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.0 */ ?>
出力は次のようになります:
int(8) [1]
<? Class ClassA { function bc($b, $c) { $bc = $b + $c; echo $bc; } } call_user_func_array(array('ClassA','bc'), array("111", "222")); //显示 333 ?>
最初のパラメータ: クラス名、関数。 2 番目の関数: パラメーターを渡す
おそらく、次のような疑問が生じるかもしれません: call_user_func_array 関数はどのような状況で使用されるのでしょうか? 特定の関数を呼び出すとき、単に new を直接呼び出す必要はありませんか?
call_user_func_array と新しいクラス名の違いは、all_user_func_array の最初のパラメーターが array('クラス名','メソッド名') の場合、システムはメソッドを直接実行するクラスのオブジェクトを自動的に作成しますが、 __construct コンストラクター メソッドは、静的メソッドのクラス名::関数名 (パラメーター) を呼び出すことと同等であり、新しいクラス名が使用される場合は、コンストラクターが最初に実行されます。