我在自定义框架中工作。我有一堂课:<?phpclass group extends \something\some{ public function mymethod() { //code return $output; } public static who() { //I've a DB query here returning an array return $query-result; }}然后在前端页面中我有:$group = new group();foreach ($users as $user) { //mycode $who = $group::who();}但是通过这种方式,我生成了num 个用户 x 1 个查询,其中 20 个用户有 20 个查询。我只能在 foreach 内部挂钩,然后我想知道是否有办法只抓取这个数组(方法 who()),如果我在 foreach 内部调用它。
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
您可以将数据库中的结果保存在方法(或类)内的静态变量中。当它尚未加载时,您只填充一次。任何未来的调用都将使用已经获取的数据。代码看起来像这样(来自函数内的`static`关键字的答案?):
function doStuff() {
static $cache = null;
if ($cache === null) {
$cache = '%heavy database stuff or something%';
}
// code using $cache
}
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消