У меня есть переменная $id = 10
нужно использовать внутри array_walk()
, Как ниже:
$id = 10;
array_walk($profile_items, function(&$a) {
$count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
$a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items).exit;
Когда я использовал $id
переменная внутри array_walk()
это показать ошибку.
Сообщение: неопределенная переменная: id
Любое решение?
Спасибо за совет
Ты можешь использовать use
ключевое слово:
array_walk($profile_items, function(&$a) use($id) {
так,
$id = 10;
array_walk($profile_items, function(&$a) use($id) {
$count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
$a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items);
Для наследования по ссылке добавьте амперсанд:
array_walk($profile_items, function(&$a) use(&$id) {
Вы можете передать $ id в вашу функцию array_walk, используя:
$id = 10;
array_walk($profile_items, function(&$a) use($id){
$count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
$a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items).exit;
Область действия переменной — это контекст, в котором она определена. По большей части все переменные PHP имеют только одну область видимости. Эта единая область действия включает и необходимые файлы.
Использование глобального ключевого слова вне функции не является ошибкой. Может быть
используется, если файл включен изнутри функции.
$id = 10;
array_walk($profile_items, function(&$a) {
global $id;
$count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
$a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items).exit;
добавить параметр в use()
так, если вы хотите изменить $id
, передать его по ссылке с &в противном случае по значению.
array_walk($value, function($v, $k) use ($id){});
или же
array_walk($value, function($v, $k) use (&$id){});