ホームページ  >  記事  >  バックエンド開発  >  call_user_func_array 呼び出しインスタンス

call_user_func_array 呼び出しインスタンス

巴扎黑
巴扎黑オリジナル
2016-11-23 14:09:011329ブラウズ

特定のクラス ファイルをインポートし、このクラス ファイルを呼び出す場合、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(&#39;ClassA&#39;,&#39;bc&#39;), array("111", "222"));    
    
//显示 333    
?>


最初のパラメータ: クラス名、関数。 2 番目の関数: パラメーターを渡す

おそらく、次のような疑問が生じるかもしれません: call_user_func_array 関数はどのような状況で使用されるのでしょうか? 特定の関数を呼び出すとき、単に new を直接呼び出す必要はありませんか?

call_user_func_array と新しいクラス名の違いは、all_user_func_array の最初のパラメーターが array('クラス名','メソッド名') の場合、システムはメソッドを直接実行するクラスのオブジェクトを自動的に作成しますが、 __construct コンストラクター メソッドは、静的メソッドのクラス名::関数名 (パラメーター) を呼び出すことと同等であり、新しいクラス名が使用される場合は、コンストラクターが最初に実行されます。


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