匿名函数中的Yii2 $ defaultValue

时间:2017-03-24 17:26:41

标签: php function yii2

不是一个大问题,但我想弄明白为什么。 我正在阅读Yii2 By Example。 我注意到db event的exmaple中的视图文件。 关于下拉列表,这是代码:

<?= $form->field($reservation, "room_id")->
dropDownList(ArrayHelper::map(Room::find()->all(), 'id', 
function($room, $defaultValue) {
return sprintf('Room n.%d at floor %d', $room->room_number, $room->floor);
})); ?>

我尝试使用和不使用$ defaultValue.Both。 那么什么是&#34; $ defaultValue&#34;? 或者它只是一个非意义。 我用Google搜索并且不知道。 谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

正如您在yii2参考http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

中看到的那样

在ArrayHelper的map()函数中,你可以使用from,to和group param a clousure ..

然后在clusere中,您可以将内部函数传递给一个列表o param,它是&#34;可见&#34;在你没有使用的情况下的功能内部 $ defaultValue所以你可以避免传递这个var

  ArrayHelper::map(Room::find()->all(), 'id', 
  function($room) {
  return sprintf('Room n.%d at floor %d', $room->room_number, $room->floor);
  })

您也可以使用$ test var并使用它,例如:

  $test = 'Big ';
  ArrayHelper::map(Room::find()->all(), 'id', 
  function($room) use($test) {
  return sprintf( $test . 'Room n.%d at floor %d', $room->room_number, $room->floor);
  })