Fehlerbehebung beim Problem „Schwerwiegender Fehler: []-Operator wird für Zeichenfolgen nicht unterstützt“
Dieser schwerwiegende Fehler tritt auf, wenn versucht wird, die kurze Syntax zu verwenden für Array-Push-Vorgänge für eine Nicht-Array-Variable, normalerweise eine Zeichenfolge. Bei der Untersuchung des bereitgestellten Codeausschnitts ist es wahrscheinlich, dass eine oder mehrere der Variablen ($name, $date, $text, $date2) ursprünglich als Zeichenfolgen definiert wurden.
Um dieses Problem zu beheben, ändern Sie die Zuweisungen innerhalb Schleife, um diesen Variablen Zeilenwerte direkt zuzuweisen, ohne Arrays zu erstellen:
<code class="php">$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2'];</code>
PHP 7 hat strengere Regeln für die Array-Push-Syntax mit leeren Indizes implementiert. Variablen, die zuvor als Nicht-Arrays definiert waren (Strings, Zahlen, Objekte), dürfen diese Syntax jetzt nicht mehr verwenden, was zu dem oben genannten Fehler führt.
Zur Betonung: Diese Operationen bleiben in PHP 7 gültig:
<code class="php">unset($arrayWithEmptyIndices); $arrayWithEmptyIndices[] = 'value'; // Creates an array and adds an entry $array = []; // Creates an array $array[] = 'value'; // Pushes an entry</code>
Versuche, die Array-Push-Syntax für Variablen zu verwenden, die als Zeichenfolgen, Zahlen oder Objekte deklariert sind, führen jedoch zu einem schwerwiegenden Fehler:
<code class="php">$stringAsVariable = ''; $stringAsVariable[] = 'value'; $numberAsVariable = 1; $numberAsVariable[] = 'value'; $objectAsVariable = new stdclass(); $objectAsVariable[] = 'value';</code>
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP 7 den „Schwerwiegenden Fehler: [] Operator Not Supported for Strings'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!