【问题标题】:Call static function by method name? [duplicate]通过方法名调用静态函数? [复制]
【发布时间】:2016-12-28 17:36:51
【问题描述】:

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

例如,如果这是我的课

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() 一样调用它们?还是有更简单的方法?

【问题讨论】:

标签: php methods


【解决方案1】:

感谢 Michael Lihs 在他们的评论中链接问题;事实证明,call_user_func() 可以满足我的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    相关资源
    最近更新 更多