Предупреждение: Неопределенный ключ массива в PHP 8.0

#php #arrays #key #undefined

Вопрос:

Мой веб-отель обновлен до версии PHP 8.0.Код работает, но теперь на главной странице отображается сообщение с предупреждением.

У меня что-то с моим массивом.

 Warning: Undefined array key "JS" in /customers/c/c/4/plf1x2.dk/httpd.www/test/svspeuro.php on line 1465  Warning: Undefined array key "Vinst" in /customers/c/c/4/plf1x2.dk/httpd.www/test/svspeuro.php on line 1465  Warning: Undefined array key "PWB" in /customers/c/c/4/plf1x2.dk/httpd.www/test/svspeuro.php on line 1468 Warning:  Undefined array key "Vinst" in /customers/c/c/4/plf1x2.dk/httpd.www/test/svspeuro.php on line 1468 Warning:  Undefined array key "oavgjord" in /customers/c/c/4/plf1x2.dk/httpd.www/test/svspeuro.php on line 1471 here  

Я пробовал с

 enterif (isset($matchesLines[$Borta_Lag]['omgångar'])){  $matchesLines[$Borta_Lag]['omgångar'] =1;  } code here  

но это не работает, он получает пустое значение.

Вот код. Надеюсь, кто-нибудь сможет мне помочь?

 // Sorterar ut lagnamn och resultat $file = file($filename); $result = array_merge($file,$resultatarray) $matchesLines = array();   foreach($result as $line) {   if(preg_match('/^([a-öA-Ö] D)-([a-öA-Ö] D) (d )-(d )/', $line, $data)){  $Hemma_Lag = $data[1];  $Borta_Lag = $data[2];  $Hemma_Resultat = $data[3];  $Borta_Resultat=$data[4];   $matchesLines[$Hemma_Lag]['Vinst']  = 0;  $matchesLines[$Borta_Lag]['Vinst']  = 0;  $matchesLines[$Hemma_Lag]['oavgjord']  = 0;  $matchesLines[$Borta_Lag]['oavgjord']  = 0;  $matchesLines[$Hemma_Lag]['Förlust']  = 0;  $matchesLines[$Borta_Lag]['Förlust']  = 0;   if ($Hemma_Resultat == $Borta_Resultat){  $matchesLines[$Hemma_Lag]['lag'] = $Hemma_Lag;  $matchesLines[$Hemma_Lag]['poang'] =1;  $matchesLines[$Hemma_Lag]['mål']  = $Hemma_Resultat;  $matchesLines[$Hemma_Lag]['måli']  = $Borta_Resultat;  $matchesLines[$Hemma_Lag]['oavgjord']  = 1;  $matchesLines[$Borta_Lag]['lag'] = $Borta_Lag;  $matchesLines[$Borta_Lag]['poang']  =1;  $matchesLines[$Borta_Lag]['mål']  = $Borta_Resultat;  $matchesLines[$Borta_Lag]['måli']  = $Hemma_Resultat;  $matchesLines[$Borta_Lag]['oavgjord']  = 1;  }   if ($Hemma_Resultat gt; $Borta_Resultat){  $matchesLines[$Hemma_Lag]['lag'] = $Hemma_Lag;  $matchesLines[$Hemma_Lag]['poang'] =3;  $matchesLines[$Hemma_Lag]['mål']  = $Hemma_Resultat;  $matchesLines[$Hemma_Lag]['måli']  = $Borta_Resultat;  $matchesLines[$Hemma_Lag]['Vinst']  = 1;  $matchesLines[$Borta_Lag]['lag'] = $Borta_Lag;  $matchesLines[$Borta_Lag]['poang']  =0;  $matchesLines[$Borta_Lag]['mål']  = $Borta_Resultat;  $matchesLines[$Borta_Lag]['måli']  = $Hemma_Resultat;  $matchesLines[$Borta_Lag]['Förlust']  = 1;  }   if ($Hemma_Resultat lt; $Borta_Resultat) {  $matchesLines[$Hemma_Lag]['lag'] = $Hemma_Lag;  $matchesLines[$Hemma_Lag]['poang'] =0;  $matchesLines[$Hemma_Lag]['Förlust']  = 1;  $matchesLines[$Hemma_Lag]['mål']  = $Hemma_Resultat;  $matchesLines[$Hemma_Lag]['måli']  = $Borta_Resultat;  $matchesLines[$Borta_Lag]['lag'] = $Borta_Lag;  $matchesLines[$Borta_Lag]['poang']  =3;  $matchesLines[$Borta_Lag]['Vinst']  = 1;  $matchesLines[$Borta_Lag]['mål']  = $Borta_Resultat;  $matchesLines[$Borta_Lag]['måli']  = $Hemma_Resultat;  }    if (isset($matchesLines[$Borta_Lag])){  $matchesLines[$Borta_Lag]['omgångar'] =1;  $matchesLines[$Hemma_Lag]['omgångar'] =1;  }   }  }  

Комментарии:

1. Я не думаю, что это специфическая вещь для PHP 8. Я думаю, что это, вероятно, просто разница в display_errors настройках php.ini в вашей обновленной версии PHP. Я думаю, что вы уже получали эти предупреждения ранее из-за неинициализированных переменных, но они просто не отображались.

2. Спасибо за ваш ответ. Я думаю, что вы правы. Но проблема все еще существует. Как мне избавиться от массажа? Я не могу понять, как объявлять переменные.