ホームページ >データベース >mysql チュートリアル >PHP 7 で「致命的エラー: [] 演算子は文字列ではサポートされていません」というエラーが発生するのはなぜですか?どうすれば修正できますか?

PHP 7 で「致命的エラー: [] 演算子は文字列ではサポートされていません」というエラーが発生するのはなぜですか?どうすれば修正できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 18:36:14930ブラウズ

Why am I getting the

エラーの理解:「致命的なエラー: [] 演算子は文字列ではサポートされていません」

データベース内のデータを変更しようとすると、 「[] 演算子は文字列ではサポートされていません」エラーが発生しました。このエラーは、文字列に対して短い配列プッシュ構文を使用しようとしたことを示します。

根本原因:

コードを確認すると、1 つ以上の初期化が行われたようです。変数 ($name、$date、$text、$date2) を文字列として返します。これは、文字列値である $row[''] 値の割り当てから明らかです。

解決策:

この問題を解決するには、次の変更を行う必要があります。

$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];

への代入:これにより、これらの変数は文字列ではなく文字列として扱われるようになります。 arrays.

PHP 7 の厳密性について:

PHP 7 では、空のインデックス配列プッシュ構文の使用についてより厳密な制御が行われています。配列ではない変数に使用しようとすると、エラーがスローされます。

PHP 7 での有効な空インデックス配列プッシュ構文の例:

$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds an entry

$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry

ただし、以下の場合は致命的なエラーが発生します:

$declaredAsString = '';
$declaredAsString[] = 'value';

$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';

これらのガイドラインに従うことで、このエラーを回避し、アプリケーションの適切な機能を確保できます。データベース変更コード。

以上がPHP 7 で「致命的エラー: [] 演算子は文字列ではサポートされていません」というエラーが発生するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。