27
Używam funkcji array_map
w mojej aplikacji php. Tak zdefiniowałem funkcję array_map.Błąd PHP. Dlaczego "zmienna undefined" w tablicy array_map?
$ratingID = $this->db->insert_id();
$rated_item_array = array_map(function ($a) {
return $a + array('RatingID' => $ratingID);
}, $rated_item_array);
PHP Ogłoszenie pochodzi
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: ratingID
Kiedy wydrukować $ratingID
. i drukuje wartość poprawnie, więc zdefiniowano $ ratingID. Dlaczego jest on niedostępny w funkcji array_map
? My $rated_item_array
jest
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
)
)
działa idealnie. bardzo dziękuję –
dzięki za miłą odpowiedź. –
Z dokumentacji php.net na temat anonimowych funkcji. "Zamknięcia mogą również dziedziczyć zmienne z zakresu nadrzędnego, a wszelkie takie zmienne muszą być przekazywane do konstrukcji języka używania." Spójrz na przykład # 3 http://php.net/manual/en/functions.anonymous.php –