通过方法名称调用静态函数?

时间:2016-12-28 17:36:52

标签: php methods

我有几个方法,其缓存返回,缓存键是方法本身的名称。

例如,如果这是我的班级

class tester {
  static function test() {
    $data = build_data();
    cache(__METHOD__, $data);
  }
}

缓存键值为tester::test

我正在实现加热缓存的功能。如果我有所有缓存键,我可以逐个调用它们。

foreach ( $keys as $key ) {
  $key();
}

但显然,我不能以这种方式调用像'tester::test'这样的字符串 Fatal error: Call to undefined function tester::test() ...

我是否必须进行字符串解析,拆分类名和方法,然后将其称为$class::$method()?或者有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

感谢Michael Lihs在评论中将问题联系起来;事实证明,call_user_func()做了我正在寻找的事情。