call_user_func_array呼び出しインスタンス

1054 ワード

クラスファイルを導入した場合、このクラスファイルを呼び出したい場合call_user_func_array関数は、パラメータに応じて2つのインスタンスを貼ります.
PHPコード

<?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]‍  

PHPコード

<?  
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とnewクラス名の違いは、all_user_func_arrayの最初のパラメータがarray('クラス名','メソッド名')の場合、システムは自動的にそのクラスのオブジェクトを作成してメソッドを直進しますが、実行しません.construct構築メソッドは、静的メソッドクラス名::関数名(パラメータ)呼び出しを呼び出すことに相当し、newクラス名の場合、コンストラクション関数が先に実行されます.