2012-01-17 20 views
27

php uygulamasında array_map işlevini kullanıyorum. array_map işlevini bunun gibi tanımladım. i $ratingID yazdırdığınızdaPHP hatası. Array_map içinde neden "değişken tanımsız"?

$ratingID = $this->db->insert_id(); 

    $rated_item_array = array_map(function ($a) { 
     return $a + array('RatingID' => $ratingID); 
    }, $rated_item_array); 

Php bildirimi

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: ratingID 

gelir. Değeri doğru şekilde basar, böylece $ ratingID tanımlanır. Neden array_map işlevinde kararsız? Benim $rated_item_array

Array 
(
    [0] => Array 
     (
      [RatingFactorPreferenceID] => 1, 
      [PreferenceID] => 45, 
      [RatedValue] => 1, 
      [CreatedOn] => 1326790338, 
      [CreatedBy] => 25 
     ) 

    [1] => Array 
     (
      [RatingFactorPreferenceID] => 2, 
      [PreferenceID] => 45, 
      [RatedValue] => 1, 
      [CreatedOn] => 1326790338, 
      [CreatedBy] => 25 
     ) 

    [2] => Array 
     (
      [RatingFactorPreferenceID] => 3, 
      [PreferenceID] => 45, 
      [RatedValue] => 1, 
      [CreatedOn] => 1326790338, 
      [CreatedBy] => 25 
     ) 
) 

cevap

73
$rated_item_array = array_map(
    function ($a) use ($ratingID){ 
    return $a + array('RatingID' => $ratingID); 
    }, 
    $rated_item_array 
); 
+0

eserler mükemmel olduğunu. çok teşekkür ederim çok teşekkürler –

+2

teşekkürler. –

+2

php.net belgelerinden anonim işlevlere kadar. "Kapanışlar ayrıca üst kapsamdaki değişkenleri de devralabilir. Bu tür değişkenler kullanım dil yapısına geçirilmelidir." Arama yaptıktan ve denedikten sonra # 3 http://php.net/manual/en/functions.anonymous.php –