在使用yii2with、joinwith等关联查询的时候,我发现没有办法将外界的参数进行传递进去,例如:php
$province_id=15; $customers=Parks::find()->where(['id'=>2]) ->width(['house'=>function($query){ $query->andWhere(['province_id'=>$province_id]); } ])->asArray()->all();
这时候就会报错没有定义$province_id这个参数。这样的状况下咱们使用use来加载外界参数:例如yii2
$province_id=15; $customers=Parks::find()->where(['id'=>2]) ->width(['house'=>function($query) use($province_id){ $query->andWhere(['province_id'=>$province_id]); } ])->asArray()->all();
这样就能够加载。
为何这样用呢
php 5.3新增的闭包语法介绍function() use() {}
闭包: 内部函数使用了外部函数中定义的变量。
在PHP新开放的闭包语法中, 咱们就是用use来使用闭包外部定义的变量的。闭包