「致命的なエラー: [] 演算子が文字列ではサポートされていない」問題のトラブルシューティング
この致命的なエラーは、短い構文を使用しようとすると発生します非配列変数 (通常は文字列) に対する配列プッシュ操作の場合。提供されたコード スニペットを調べると、1 つ以上の変数 ($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 中国語 Web サイトの他の関連記事を参照してください。