PHP の学習方法: call_user_func と call_user_func_array の使用方法 call_user_func ( コールバック $function [, 混合 $parameter [, 混合 $... ]] ) 最初のパラメーターで提供されるユーザー定義関数を呼び出します。 戻り値: 関数の呼び出し結果、または FALSE を返します。 例 : Php コード function Eat($fruit) //パラメータ複数の { echo 「$fruit を食べたいのですが、問題ありません"; } call_user_func('eat', "apple" ); //print: リンゴを食べたいのですが、問題ありません; call_user_func('eat', "オレンジ"); //print: オレンジを食べたいのですが、問題ありません; ?> クラスの内部メソッドを呼び出します: Php コード class myclass { 関数 say_hello($name) { echo "こんにちは!$name"; } } $classname = "myclass" // クラス内の関数を呼び出すには、配列 array (クラス名、メソッド名) を使用する必要があります call_user_func(array($classname, 'say_hello'), 'dain_sun'); 🎜 > //print こんにちは! dain_sun ?> call_user_func_array 関数は call_user_func と非常に似ていますが、次の点が異なります。配列を使用して、パラメーターの構造を明確にするためにパラメーター フォームを渡します。 >callbac k $function , array $param_arr ) ユーザー定義関数を呼び出します。パラメーターは配列の形式です。 戻り値: 関数の呼び出し結果、または FALSE を返します。 Php コード function debug($ var, $val) { echo "変数: $var 値: $val "; エコー ""; } $host = $_SERVER ["サーバー名"]; "]; call_user_func_array( 'debug', array( "host", $host)); call_user_func_array( 'デバッグ', array("file", $file)); > >?> の内部メソッドを呼び出します。 class 関数と call_user_func 関数は、配列を使用して同じ方法で呼び出されます。 例: Php コード クラス テスト { 関数 debug($var, $val) { echo "変数: $var 値: $val " ; エコー ""; } } $host = $_SERVER["SERVER_NAME"]; $file = $_SERVER["PHP_SELF"]; call_user_func_array(array('テスト', 'デバッグ'), array("host", $host)); call_user_func_array(array( 'test', 'debug'), array("file", $file)); ?> 注: call_user_func 関数と call_user_func_array 関数は両方とも参照をサポートしています。 Php コード function increment(&$var) { $var++; } $a = 0; call_user_func('increment',$a); エコー $a; // 0 call_user_func_array('increment',array(&$a)); // 代わりにこれを使用できます echo $a; // 1 ?>