我试图获得每个循环内的属性的总和.这是我的代码:
$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);
Run Code Online (Sandbox Code Playgroud)
知道为什么它不起作用吗?我假设即使我在循环内部更改$ client_systems_count变量,每次它转到集合中的下一个元素时,它都会重置为它的初始值.那么哪个是获得总系统数的正确方法?
这是你的问题:
$client->accounts->each(function ($account) use ($client_systems_count) {
Run Code Online (Sandbox Code Playgroud)
每次函数运行时,它都使用$client_systems_count外部作用域.这是0.
要修改该值,您需要通过引用传递它:
$client->accounts->each(function ($account) use (&$client_systems_count) {
^ here
Run Code Online (Sandbox Code Playgroud)