我在PHP中从字符串调用类方法时遇到问题.这是一个简单的例子.一旦我开始工作,我将使用变量作为方法名称.
这是我正常调用方法的方法:
$tags_array = $this->get_tags_for_image($row["id"]);
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试但得到错误的方式:
$tags_array = call_user_func('get_images_for_tag', $row["id"]);
Run Code Online (Sandbox Code Playgroud)
我必须错过范围,但我无法弄清楚如何调用该方法.
----编辑想通了这个调用方法但是现在我认为$ row是未定义的
$tags_array = call_user_func(array($this, 'get_images_for_tag'), $row["id"]);
Run Code Online (Sandbox Code Playgroud)
完整代码块:
$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
);
}
Run Code Online (Sandbox Code Playgroud)
mfo*_*ett 16
当你想用call_user_func()调用一个对象的方法时,你必须传递一个数组,第一个元素作为调用该方法的对象或类名,第二个元素是方法的名称,例如:
$tags_array = call_user_func( array($this,'get_images_for_tag'), $row["id"]);
Run Code Online (Sandbox Code Playgroud)