类方法中函数内的call_user_func不起作用

时间:2012-03-04 19:33:55

标签: php codeigniter

我需要调用一个位于类中的另一个函数内部的函数。

class Some_class extends CI_Controller {
    public function file($action){
        function add(){ 
            $content = "Content";
            $data = array('html'=>$content);
            $this->output->append_output(json_encode($data));
        }
        call_user_func($action);
    }
}

这不会返回任何内容。

我需要调用函数add(),并且无法正常工作,即使我只是放add()而不是call_user_func()。但是这个想法是调用函数file()中的每个函数。

2 个答案:

答案 0 :(得分:1)

您想要传递callback。假设actionMyClass的方法。然后你会使用:

$my_class = new MyClass();

call_user_func(array($my_class, 'action'));

答案 1 :(得分:1)

虽然我从未亲自使用过此功能,但我认为它不起作用,因为你没有返回任何东西。

如果函数$ action应该返回一个值,那么写:

return call_user_func($action);

否则(如果它在一个参数中放置一个值),它将需要一个param,它的工作方式如下:

call_user_func($action, $param);
return $param;

也许我误解了你想要做的事情。