Не работает parse_str() после обновления на PHP 8.1

killoff

CD тихо, и не DVD меня ;)
Команда форума
Модератор
Регистрация
13 Май 2008
Сообщения
2.627
Реакции
1.135
  • Автор темы
  • Модер.
  • #1
Всем привет, потребовалось сервер до 8.1 PHP, часть проблем уже решил, а по этой проблеме не смог ничего внятного нагуглить. Написано что второй параметр нужен обязательно.
Код:
Optional parameter $activeSelector declared before required parameter $value is implicitly treated as a required parameter in
ругается на строку первую этой функции
Код:
    private function InitSelector(
        $activeSelector = '',
        $value,
        $arraySelectors = []
    ) {
        ksort($arraySelectors);
и ещё ошибка
Код:
parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in
на строку ругается
Код:
parse_str($this->iframeSelect, $parse_str);
Подскажите что в этих строках не так на 8,1?
 
чел, не сильно описал подачу данных ты тут), попробуй так обойти пустоту второго параметра
parse_str($this->iframeSelect, ($parse_str? : []));
Типо недолжно null приходить.
 
Последнее редактирование:
Так а в чем проблема-то исправить? Вроде простые же примеры
В первом кейсе обязательный параметр $value должен быть в списке параметров первым, до необязательных
Во втором кейсе нельзя без параметров вызывать parse_str(), смысла в этом нет
В третьем тоже самое - первый параметр не может быть нулл, должен быть строкой, как вариант можно так решить:
PHP:
parse_str($this->iframeSelect ?: '', $parse_str);
Но лучше отдельно проверку добавить
 
Назад
Сверху