在使用each()時,each()里面只能使用區域變數,當使用外部變數時會報未定義變數的錯誤,但是有時候我們還必須使用外部變數,就需要想是時作用域的問題,但是如果使用 global 全域雖然不報錯,但是列印出來是 null ,所以最終使用 use 解決, 如果在函式中需要修改變數的值,會發現在函式內,變數的值改變了,但是函式外面的變數值還是沒變,如果想使函式內外的變數的值同時改變,在 use 前面加 “& ”即可,
$list = Db::view('drugall') ->view('drug_class','id drugclass_id','drugall.drugclass_id = drug_class.id') ->where($map) ->paginate(15,false,['query'=>request()->param()]) ->each(function ($item,$key) use(&$userId) { $item['time'] = Db::view('drug','createtime') ->view('draft_user','draftkind','drug.id = draft_user.draftId') ->where(['drug.drugid'=>$item['id'],'draft_user.userid'=>$userId]) ->select(); return $item; }); return $list;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88065.html
標籤:PHP
下一篇:php的排序演算法
