你可以简单地做这样的事情:
- 设置一个指示器来标记查询是第一次还是重复。
- 查询前,检查指标。
代码:
$fresh = true; // fresh results wanted
function query(){
global $fresh;
if($fresh){
$query= // get data from database;
$bar = $query; // cache the $query value for next uses..
$$fresh = false; // set the indicator that query is cached.
}else{ // this is repeated query
$query = $bar; //we had set the $bar last time
}
return $query;
}
function show_something(){
//first time query, $query will be fetched from database,
// also $fresh will be set to false
$data = query();
//do something
}
function show_else(){
//repeated query, cached value will be returned.
$data = query();
//do something else
}
$foo = true; // if you want fresh results, set $fresh to true before query
function show_fresh(){
//results will be fresh, because we have set $fresh to true again.
$data = query();
//do something else
}