• 締切済み

javaでcall_user_func_array

こんにちは。 javaでphpのcall_user_func_arrayのようなことってできるのでしょうか? 教えてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Method#invoke?

noname#172236
質問者

お礼

回答ありがとうございます。 勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • call_user_funcやcall_user_func_arrayはどのような時に使うのでしょうか?

    PHPのフレームワーク(Zend Fremeworkやsymfony)のコードをみていると、 call_user_func や call_user_func_array をたまに見かけますが、なぜ、 この関数を使用しているのでしょうか? call_user_func_array('test', array($a, $b)); の代わりに test($a, $b); とできないのでしょうか?

    • 締切済み
    • PHP
  • Pythonでcall_user_funcを行う

    お世話になります。 最近Pythonの勉強を始めた初心者です。 GAE/Python2.5で、PHPで言うcall_user_funcを使う方法を探しております。 具体的に言いますと、関数名(メソッド名)を変数に入れて、それを呼び出す方法を探しています。 例えばPHPで言えば下記のようなコードです。 ---------------------- <?php // 呼び出すクラス class CTestClass {   // 呼び出すメソッド   function TestFunc()   {     echo 'Call <CTestClass::TestFunc()>';   } } // 変数にメソッド名を入れて呼び出す $func = 'TestFunc'; $obj = new CTestClass(); call_user_func( array( $obj, $func ) ); // print Call <CTestClass::TestFunc()> ---------------------- Pythonでは上記のような事は可能でしょうか? また、メソッドを呼び出すのと普通のグローバル関数を呼び出すのでやり方が違う場合はそちらも教えて頂けるとあり難いです。 以上、よろしくお願い致します。

  • wordpressでワーニングが出て解決できません

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'comments_allow_only_column' not found or invalid function name in C:\xampp\htdocs\wordpress\wp-includes\plugin.php on line 170 ↓plugin.php の170行目の下記の★★部分でエラーが出ているようなのですが PHPの知識がないためどこが悪いのかわかりません。 フォームを設置した部分あたりから全てのページにエラーがでるようになってしまいました。 環境はローカルに設定しています。 $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); -------------------- function apply_filters($tag, $value) { global $wp_filter, $merged_filters, $wp_current_filter; $args = array(); // Do 'all' actions first if ( isset($wp_filter['all']) ) { $wp_current_filter[] = $tag; $args = func_get_args(); _wp_call_all_hook($args); } if ( !isset($wp_filter[$tag]) ) { if ( isset($wp_filter['all']) ) array_pop($wp_current_filter); return $value; } if ( !isset($wp_filter['all']) ) $wp_current_filter[] = $tag; // Sort if ( !isset( $merged_filters[ $tag ] ) ) { ksort($wp_filter[$tag]); $merged_filters[ $tag ] = true; } reset( $wp_filter[ $tag ] ); if ( empty($args) ) $args = func_get_args(); do { foreach( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ){ $args[1] = $value; ★★$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); } どの辺を修正すればよいのでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • なぜfunc()で動き、funcで動かないのか。

    以前良く似た質問をしましたが、また疑問点が出たので質問します。 前回は、以下のコードでなぜonload = funcで動作し、onload = func()では動作しないのかをお聞きしました。 var img = new Image(); window.onload = function() { img.onload = func; } function func() { (省略) } その結果、funcだと関数を指定し、func()だと関数の返り値を代入するという答えを頂きました。 しかし自分で実験してみたところ、以下のコードでは逆の結果になりました。 window.onload = function() { document.getElementById("result1").onload = result1; document.getElementById("result2").onload = result2(); } function result1() { document.getElementById("result1").innerHTML = "result1"; } function result2() { document.getElementById("result2").innerHTML = "result2"; } <div id="result1"></div> <div id="result2"></div> onload = result2()の方は期待通りの結果が得られましたが、onload = result1ではdiv要素に文字列は挿入されませんでした。onloadによって実行される関数をfunc形式で指定したのになぜ動作せず、func()形式のもののみ動作したのでしょうか? あと蛇足になりますが、このようなコードも試してみましたが、どちらもうまくいきませんでした。 window.onload = function() { document.getElementById("result1").onload = result1; document.getElementById("result2").onload = result2(); } function result1() { this.innerHTML = "result1"; } function result2() { this.innerHTML = "result2"; } <div id="result1"></div> <div id="result2"></div> 両方のfunction内のthisはdocument.getElementById("result1")またはdocument.getElementById("result2")を指すのではないのでしょうか?

  • なぜ関数をfuncで呼び出すのか。なぜfunc()ではいけないのか。

    画像の読み込み完了をトリガーとして動作する以下のような関数があります。 var img = new Image(); window.onload = function() { img.onload = func; } function func() { (省略) } img.onloadによって、画像の読み込みが完了したときに動作する関数を指定していますが、なぜfuncと書き、func()ではいけないのでしょうか?実際に試してみましたが、()をつけると動作しませんでした。()をつけないで関数を呼び出す方法を知らなかったので(無名関数を使う場合でさえ、変数名()という形を取るのに)、この理由が分からなくて困っています。どなたか教えてください。

  • array

    includeでarrya構文で記述した変数を読み込んで、 arrayで定義した1~6までの変数ぶんHTMLを繰り返すにはどうしたらいいですか? --------------------------- include.php $name=array( 0=>"太郎", 1=>"花子", 2=>"四郎" ); --------------------------- <?php include('include.php'); ?> <html> <body> <TD><?php echo $name ?></TD> </body> </html> ---------------------------- <TD><?php echo $name ?></TD> の部分を変数の数だけ記述するのではなく、 一行で繰り返す方法はありますか? よろしくおねがいします。

    • ベストアンサー
    • PHP
  • phpで携帯サイトを作成しています。

    php超初心者です。 現在、phpにて携帯サイトを作成しています。 サンプルコードなどが記載されている本を購入し、 それを解読しながら、自分なりに修正を加え作成しています。 その中で、どうしても理解できない所があり困っています。 どなたか教えて下さい。 サンプルコード function mobileFinish($convertFunc=null, $funcParams=array()) { // 文字コード変換&バッファ出力 $content = ob_get_contents(); ob_end_clean(); $content = mb_convert_encoding($content, 'sjis-win', 'utf-8'); // 変換処理 if ($convertFunc) { $content = call_user_func_array($convertFunc, array_merge(array($content), $funcParams)); } echo $content; まず function 関数名 (引数1,引数2){ 処理方法 }は 引数1,引数2を使って{ }の中の処理をせよ ということだと思うので、 ”$convertFunc=null”と”$funcParams=array()”を使って{ }の中の処理をせよになり、 { }の中の処理というのが、 $content = ob_get_contents(); ob_end_clean(); $content = mb_convert_encoding($content, 'sjis-win', 'utf-8'); つまり、このコード以前に記述されている出力用バッファの内容を取得して、 バッファをクリアして、 文字コードを”utf-8”から”sjis-win”に変換したものを”$content”に格納する。 ここからが理解できないのです。 if ($convertFunc) { $content = call_user_func_array($convertFunc, array_merge(array($content), $funcParams)); } まず if (条件式) { 処理方法 }は、 条件式が「正」の時{ }の中の処処を行え ということだと思うので、 ”$convertFunc=null”つまり”$convertFuncに値が無い時”に{ }の中の処処を行えになり、 call_user_func_array(”呼び出す関数名”,”関数に渡すパラメータがセットされた配列”)は ”呼び出す関数名”は”$convertFunc=null”なんのこっちゃ? ”関数に渡すパラメータがセットされた配列”も”$content”に格納された内容と ”$funcParams=array()”を”array_merge()”で合体させる・・・ ”$funcParams=array()”には何の値が入っているんだ? ”$convertFunc=null”と”$funcParams=array()”のおかげでチンプンカンプンです。 どなたかPHP訳してください。宜しくお願いします。

    • ベストアンサー
    • PHP
  • array_combine()について

    http://phpspot.net/php/man/php/function.array-combine.html こちらを参考に配列のまとめ方と取り出し方を模索中です。 $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $c = array_combine($a, $b); ↑こちらは、 foreach($c as $key => $value){ ~ } ↑このような感じでそれぞれ取り出せると思います。 ここまではいけました。 この状態で対象が3つ以上になった場合は、どういう対応方法があるのでしょうか。 $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $hoge = array('100', '150', '80'); array_combine()でできるのでしょうか。 他の関数を使うのでしょうか。 不慣れですみません。 アドバイスいただけますとうれしいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • array_randを使いたい?

    phpでarray_randを使ってCSVのデータをランダム表示させたいです。 phpの知識がなくどのようにすればいいかわかりません。 CSVは id,商品名,説明文,価格,画像URL,リンク先URL, こんな感じになっています。 いろいろと調べてランダムにするにはarray_randを使えばいいのがわかったのですが、どのようにPHPを書けばいいかわかりません。 すいませんが、詳しく教えていただけないでしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • Javaを制限ユーザーでも使えるようにするには

    WindowsXPproを使用している管理者です。  Javaをインストールしたところ、制限ユーザーの子供たちが使えないと言っています。管理者の私は使えるのですが、制限ユーザーも使えるようにするにはどうしたらよいのでしょうか?  

このQ&Aのポイント
  • OFFボタンを押した後、電源が入らない場合の解決方法を紹介します。
  • BIOSのパスワードを3回誤った場合、ビープ音が鳴りますが、その後OFFボタンを押すと電源が入らなくなることがあります。
  • 富士通FMVの場合、OFFボタン後に電源が入らない場合は、一時的にバッテリーを外して放電する方法が効果的です。また、BIOSセットアップ画面からパスワードを再設定することもできます。
回答を見る