我怀疑解决这个问题的最佳方法是:
我想要做的是能够调用一个方法,该方法首先验证我需要的数据是否在缓存中,然后如果不可用,则执行我定义为原始方法参数的后备方法。
public function index() {
$data['some_cache'] = $this->get_cache('cache_key', $this->get_list_something('entered fallback method'));
}
public function get_cache($key, $fallback_function) {
$data = FALSE;
if ( ! empty($key)) {
$data = $this->cache($key);
if (empty($data)) {
$data = $fallback_function;
}
}
return $data;
}
public function cache($key) {
// try to find something on cache list (either memory cache / file cache) I just return FALSE to fail on purpose
return FALSE;
}
public function get_list_something($param) {
return $param;
}
我可以将方法名称作为字符串发送,将参数作为数组发送,然后使用 call_user_func_array 调用它(导致 get_cache 方法发生变化)。
所以我的问题归结为:这是好的做法吗?这样做会遇到什么问题?
谢谢您的帮助。