Home > PHP > 可変でユーザ変数を呼びたい

可変でユーザ変数を呼びたい

  • 2010-04-08 (木) 17:25
  • PHP

条件によって違うfunctionを呼びたいときも、そらぁある。

例えば、$_GET["code"]が『1』のときは『_play1』を、『2』のときは『_play2』を、呼びたいとするとか、そんな感じ。

コードで言えばこんな感じ。

class aaaa{
   var $call_class = array(
               1 => "_play1",
               2 => "_play2",
           );

   function aaaa(){
       $method = $this->call_class[$_GET["code"]];
       ///// [!!]ここでの実行方法[!!] /////
       $ans = ??????;
   }

   function _play1($aa){
      return "1{$aa}";
   }
   function _play2($aa){
      return "2{$aa}";
   }
}

[!!]の部分が問題になる。

うっかり

$ans = $this->$method($aa);

とやりたいとこではあるんだけど、そうすると

Fatal error: Method name must be a string in ~

となってしまうのだ。
※環境によっては実行されるケドね、裏でログが溜まってたりするよ


解決方法

$ans = call_user_func_array(array($this,$method), array($aa));

または

$ans = call_user_func(array($this,$method), $aa);

よかったね よかったよ。無駄に時間かけたよ…。
どうみても違和感がある引数だが、あえて使って書いた。
そっち状況のが使うし。

タグ:

関連する投稿

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://qooga.jb-jk.net/wp/2010/04/%e5%8f%af%e5%a4%89%e3%81%a7%e3%83%a6%e3%83%bc%e3%82%b6%e5%a4%89%e6%95%b0%e3%82%92%e5%91%bc%e3%81%b3%e3%81%9f%e3%81%84/trackback/
Listed below are links to weblogs that reference
http://qooga.jb-jk.net/wp可変でユーザ変数を呼びたい from MOT:主にプログラム勉強メモ部屋

Home > PHP > 可変でユーザ変数を呼びたい

Search
Option
  • Twitter
Feeds
commercial
Mobile
Meta
Tag Cloud
TOP10
commercial

Return to page top