@nikkyt
nikkyt

Почему не вставляется переменная в функцию?

Если в функцию вместо $parametr_widther вставить число то все работает, $parametr_widther принимает число проверено

if (isset($_POST['widtherr'])) {
   
    $parametr_widther = $_POST['widtherr'];
    
    $vibranye = array_filter($shiny, function (array $arr): bool {
    //берем одну строку м перебираем каждый элемент
    foreach ($arr as $e) {
 
        //Сюда $parametr_widther не вставляется переменная
        if (in_array($e, ['$parametr_widther'], true)) {
            return true;
        }
    }
    return false;
    });
 
 
    
   
    echo ($vibranye);// пустой массив
 
}
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 3
@eternalfire
омг - какие ужасные названия переменных, зачем вы вызываете попаболь у коллег?
используйте общепринятый язык для обозначения переменных - английский
$vibranye = array_filter($shiny, function (array $arr) use ($parametr_widther) {


внутри анонимной функции своя область видимости переменных, нужно использовать оператор use
Ответ написан
Комментировать
@Mofsy
Ехал Грека через реку. Видит Грека в реке рак.
Кавычки не лишние со скобками? :)
if (in_array($e, ['$parametr_widther'], true)) {
   return true;
}

Должно быть:
if (in_array($e, $parametr_widther, true)) {
   return true;
}
Ответ написан
Комментировать
@Arik
POST приходят всегда строки, а вы в in_array указали третий аргумент проверят тип переменной
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы