未定义变量'count'

时间:2017-04-09 15:16:23

标签: php laravel

我有一段时间没有完成PHP所以我有点困惑为什么我在标题中收到错误

$count =0;
User::chunk(200, function ($users) {
    $count++;
    error_log('------------ chunck: '.$count);
});

3 个答案:

答案 0 :(得分:5)

您必须使用文档(http://php.net/manual/en/functions.anonymous.php)中描述的declare @id1 int, @id table ( id int ) select * from @id

  

闭包还可以从父作用域继承变量。任何这样的   变量必须在函数头中声明。继承   父作用域中的变量与使用全局不同   变量。全局变量存在于全局范围内,即   无论执行什么功能都一样。

代码:

use

答案 1 :(得分:4)

你应该使用use($ count)将var $ count传递给匿名函数

  $count =0;
 User::chunk(200, function ($users) use ($count) {
  $count++;
   error_log('------------ chunck: '.$count);
});

点击此处http://php.net/manual/en/functions.anonymous.php

答案 2 :(得分:3)

你必须将$ count变量传递给closure / lambda

User::chunk(200, function ($users) use($count) {
 $count++;
 error_log('------------ chunck: '.$count);
});