我有致命的錯誤出現在錯誤日誌中,但由於某種原因,它根本不會影響應用程序。這是正在運行的代碼,它爲什麼會生成PHP錯誤是沒有意義的。致命錯誤:不能使用字符串偏移量作爲數組根本沒有任何意義
for ($i = 1; $i <= $tournament['num_score_fields']; $i++) {
$scoresArrayTemp = array(
'score',
'dist',
'dateShot',
'tens',
'nines'
);
foreach($scoresArrayTemp AS $val){
if(empty($scores[$i][$val])){
$scores[$i][$val] = '';
}
}
}
由該行
$scores[$i][$val] = '';
任何幫助,將不勝感激感謝產生的錯誤!
基於答案1我改變了代碼如下:
for ($i = 1; $i <= $tournament['num_score_fields']; $i++) {
$scoresArrayTemp = array(
'score'=>'',
'dist'=>'',
'dateShot'=>'',
'tens'=>'',
'nines'=>''
);
if(!is_array($scores[$i])){
$scores[$i] = $scoresArrayTemp;
}
echo $scores[$i]['score'];
}
呼應了可變
什麼是$分數?基於錯誤消息的分數似乎是一個字符串?因爲$ string [1]會給你在php – Doon
中的字符串偏移量。$ scores是一個數組,並且始終是一個數組,它會在代碼中進一步處理。 – MadScientist
你是否100%確定它是這個範圍的數組(因爲我們沒有看到所有的代碼)。由於PHP似乎將'$ scores [$ i] [$ val]'解析爲'($ scores [$ i])[$ val]'。它的'$ scores'是一個你會得到的字符串(字符串偏移量)[$ val],錯誤信息是非常有意義的。在循環內嘗試var轉儲$分數並查看它顯示的內容。 – Doon