2011-06-30 56 views
6

我無法從調用PHP中的字符串類方法 PHP類的方法。這是一個簡單的例子。一旦我得到這個工作,我將使用一個變量作爲方法名稱。呼叫從字符串參數

這是我如何會被調用正常的方法:

$tags_array = $this->get_tags_for_image($row["id"]); 

以下是我正在努力,但得到一個錯誤:

$tags_array = call_user_func('get_images_for_tag', $row["id"]); 

我必須缺少的範圍,但我可以」弄清楚如何調用該方法。

----編輯 想通了,這個調用該方法,但$行是不確定的,現在我相信

$tags_array = call_user_func(array($this, 'get_images_for_tag'), $row["id"]); 

的完整代碼塊:

$images = call_user_func(array($this, 'get_images_for_tag'), $filter); 
     foreach ($images as $row){ 

      $tags_array = call_user_func(array($this, 'get_images_for_tag'), $row["id"]); 
      foreach ($tags_array as $tag_row){ 
       $tags_array[] = $tag_row["tag"]; 
      } 

      $image_array []= array (
       'url' => $this->gallery_path_url . '/'. $row["name"], 
       'thumb_url' => $this->gallery_path_url . '/thumbs/' . 't_'. $row["name"], 
       'id' => $row["id"], 
       'description' => $row["description"], 
       //'url' => $row["url"], 
       'tags' => $tags_array 
       ); 
     } 

回答

15

當你想調用一個對象的方法噸與call_user_func()你必須通過其與作爲對象或類名的第一個元素的陣列,該方法將上調用和所述第二元件是所述方法的名稱,例如:

$tags_array = call_user_func(array($this,'get_images_for_tag'), $row["id"]); 
3

試試這個:

$tags_array = call_user_func(array($yourClassObj, 'get_images_for_tag'), $row["id"]); 
1

使用此:

call_user_method( 'get_images_for_tag',$此,$行[ 「ID」]);