короче php 8: Warning: Trying to access array offset on value of type null

wezar

Для примера, есть у меня вот такой код:

PHP:
  1.  $form = $request->getPost(‘text’);
  2.         $file = $request->getFiles(‘file’);
  3.         $name = basename($file[‘name’]);
  4.  
  5.         if (move_uploaded_file($file[‘tmp_name’], ROOT . DIRECTORY_SEPARATOR . $name . ‘.jpg’)) {
  6.             $result = ‘загружено’;
  7.         }
  8.  
  9.         $news = new News();
  10.         $rs = $news->query();
  11.         $this->view->require(‘form.php’, compact(‘form’, ‘file’, ‘result’, ‘rs’));

На PHP 7 ошибок нет, на 8 ругается:
Warning: Trying to access array offset on value of type null на строки с массивами $file[name] и $file[tmp_name]; И
compact(): Undefined variable $result

Подскажите как исправить. Я не думаю что уместно каждый раз проверять переменные с массивами на null, если переменная создается динамически по ходу выполнения, например $name = basename($file[‘name’] ?? »); — тогда конечно ошибка пропадает. Или пхп пошел по тому пути, что теперь либо обязательно заранее нужно инициализировать переменные или проверять на null перед использованием??? Растолкуйте этот момент пжл…

 

mkramer

Не думаю, что в версии дело. Семёрка тоже матерится, если от null-а индекс брать. Разве что вы семёрку настройками заткнули, а восьмёрку — нет

 

wezar

разобрался. Пол года назад писал этот код…

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *