总是被调用的 PHP 方法

标签 php oop methods call

我目前正在开发自己的 PHP-MVC 框架(仅供体验)。

我的问题:是否可以在每次调用类方法时调用已定义的函数或方法 被调用了吗?

例如:

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

我想要的是:

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

我尝试了不同的方法……但没有成功。 如果有人可以帮助我解决这个问题,那就太好了。

干杯, 克里斯

最佳答案

您可以使用 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
}

记住: View 函数必须是私有(private)的/ protected 。

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

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

关于总是被调用的 PHP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539611/

相关文章:

python - 方法的 __file__ 属性如何成为类而不是实例?

Javascript,对象原型(prototype) - 避免编写完整路径

php - 开源语言识别库?

php - 如何在函数选择中使用IF和ELSE?

ios - iOS View TableViewCell 中的面向对象编程问题

php - 如何使用 Mysqli 的面向对象方法预填充表单?

php - 为什么按位 Not 对复制/粘贴的字符串不起作用?

javascript - jquery datepicker在不同浏览器上有不同的格式

python - 在 Python 中动态地将父类(super class)添加到已知类

java - Java 什么时候调用 finalize() 方法?