Область действия параметра обратного вызова array_map php

В следующем коде функция обратного вызова, переданная в wrap_map, не может видеть аргумент во внешней функции, почему ? (подробности см. в комментариях к коду)

public static function wrap_implode($ar, $wrap, $delim){
  echo "wrap is $wrap"; //wrap is ok
  $res = array_map(function($val){
     echo "wrap is $wrap"; //wrap is not set here!
     return $wrap. $val . $wrap;
   }, $ar);

   return implode($delim, $res);
}
9
задан Jacob 31 March 2011 в 20:27
поделиться