PHP总是被调用的方法

时间:2010-12-27 15:15:56

标签: php oop methods call

我目前正在开发一个自己的PHP-MVC-Framework(仅用于经验目的)。

我的问题:每次使用类方法时,是否可以调用已定义的函数或方法 被称为?

例如:

public function view($id) {
     //Code ...
     $this->view->render(__FUNCTION__);
}

我想要的是:

public function view($id) {
    //Code ...
    //render-method is called automatically with functionname as parameter
}

我尝试了不同的方法......但没有成功。 如果有人能帮我解决这个问题会很棒。

干杯, 克里斯

3 个答案:

答案 0 :(得分:5)

您可以使用Magic Methods来实现此行为:

public function __call($func, $args) {
  if(!method_exists($this, $func)) {
    return;
  }

  // do some coding here
  call_user_func_array($func,$args);
  // do some coding there
}

private function view($arg1, $arg2) {
  // and here
}

请记住:查看功能必须是私密/受保护的。

$obj->view("asdasd", "asdsad");

应该执行:: __ call(),然后:: view()方法

答案 1 :(得分:1)

您可以使用PHP将变量值用于执行目的的能力来创建一个联络函数。例如:

function call($func,$param)
{
    $this->$func($param);
    $this->render($func);
}

$myObj->call('view',$id);

答案 2 :(得分:1)

您可以使用包装器方法。调用此方法并将其他所有内容作为参数传递。