为了账号安全,请及时绑定邮箱和手机立即绑定

只调用一次方法

只调用一次方法

PHP
holdtom 2021-06-03 18:35:31
我在自定义框架中工作。我有一堂课:<?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

}


查看完整回答
反对 回复 2021-06-04
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

代码语言

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信