我目前正在开发一个自己的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
}
我尝试了不同的方法......但没有成功。 如果有人能帮我解决这个问题会很棒。
干杯, 克里斯
答案 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)
您可以使用包装器方法。调用此方法并将其他所有内容作为参数传递。