2012-01-17 22 views
27

Tôi đang sử dụng chức năng array_map trong ứng dụng php của mình. Tôi đã định nghĩa hàm array_map như thế này.Lỗi PHP. Tại sao "biến không xác định" bên trong mảng_map?

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

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

thông báo Php đến

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: ratingID 

Khi tôi in $ratingID. tôi in giá trị chính xác, do đó, $ ratingID được xác định. Tại sao nó không bị giới hạn ở chức năng array_map? My $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 
     ) 
) 

Trả lời

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

tác phẩm hoàn hảo. cảm ơn bạn rất nhiều –

+2

cảm ơn cho câu trả lời tốt đẹp. –

+2

Từ tài liệu php.net về các chức năng ẩn danh. "Các đóng cũng có thể kế thừa các biến từ phạm vi cha mẹ. Bất kỳ biến nào như vậy phải được chuyển tới cấu trúc ngôn ngữ sử dụng". Hãy xem ví dụ # 3 http://php.net/manual/en/functions.anonymous.php –

Các vấn đề liên quan