解決「致命錯誤:字串不支援[] 運算子」問題
嘗試使用片語法時會出現此致命錯誤用於非數組變數(通常是字串)上的數組推送操作。檢查提供的程式碼片段,很可能一個或多個變數($name、$date、$text、$date2)最初被定義為字串。
要修正此問題,請更改循環直接將行值分配給這些變數而不創建數組:
<code class="php">$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2'];</code>
PHP 7 對具有空索引的數組推送語法實施了更嚴格的規則。先前定義為非陣列(字串、數字、物件)的變數現在被禁止使用此語法,從而導致上述錯誤。
強調一下,這些操作在PHP 7 中仍然有效:
<code class="php">unset($arrayWithEmptyIndices); $arrayWithEmptyIndices[] = 'value'; // Creates an array and adds an entry $array = []; // Creates an array $array[] = 'value'; // Pushes an entry</code>
但是,嘗試對聲明為字串、數字或物件的變數使用陣列推送語法將導致致命錯誤:
<code class="php">$stringAsVariable = ''; $stringAsVariable[] = 'value'; $numberAsVariable = 1; $numberAsVariable[] = 'value'; $objectAsVariable = new stdclass(); $objectAsVariable[] = 'value';</code>
以上是為什麼我在 PHP 7 中收到「致命錯誤:字串不支援 [] 運算子」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!