在TP5.1中,chunk 是一个用于执行SQL语句的函数,它允许你在一个事务中执行多个SQL语句。如果你想在 chunk 里面改变一个变量的值,并在 chunk 外面获取这个改变后的值,你可以使用以下的方法:

  1. 定义变量:首先,在 chunk 外部定义一个变量。
  2. 在 chunk 中改变变量的值:在 chunk 内部,你可以修改这个变量的值。
  3. 获取变量的值:在 chunk 外部,你可以获取这个变量的新值
    <?php  
    namespace app\index\controller;  
    
    use think\Db;  
    
    class Index  
    {  
        public function index()  
        {  
            // 定义变量  
            $variable = 0;  
    
            // chunk中的操作  
            Db::name('table_name')->chunk(function ($list) use (&$variable) {  
                foreach ($list as $item) {  
                    // 假设每个item都有一个id字段,我们用它来改变变量的值  
                    if ($item['id'] % 2 == 0) {  
                        $variable += 1;  
                    }  
                }  
            }, 500); // 这里的500是每次处理的数量,可以根据实际情况调整  
    
            // chunk外部获取变量的值  
            dump($variable); // 输出变量的值,你可以根据需要处理这个值  
        }  
    }