【问题标题】:Make sum inside each loop Laravel在每个循环 Laravel 中求和
【发布时间】:2017-11-17 09:06:54
【问题描述】:

我试图在每个循环中获取一个属性的总和。这是我的代码:

    $client_systems_count = 0;
    $client->accounts->each(function ($account) use ($client_systems_count) {
        dd($account->systems->count());
        $client_systems_count += $account->systems->count();
    });
    dump($client_systems_count);

知道为什么它不起作用吗? 我假设即使每次循环中的 $client_systems_count 变量转到集合中的下一个元素时,它都会重置为初始值。那么获取系统总数的正确方法是什么?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这是你的问题:

    $client->accounts->each(function ($account) use ($client_systems_count) {
    

    函数每次运行时,都会使用外部作用域的$client_systems_count。这是0

    为了修改那个值,你需要通过引用来传递它:

    $client->accounts->each(function ($account) use (&$client_systems_count) {
                                                     ^ here
    

    【讨论】:

      猜你喜欢
      • 2020-04-06
      • 2019-03-24
      • 2019-04-06
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多