ホームページ > バックエンド開発 > PHPチュートリアル > PHP 7 で「致命的エラー: [] 演算子は文字列ではサポートされていません」というメッセージが表示されるのはなぜですか?

PHP 7 で「致命的エラー: [] 演算子は文字列ではサポートされていません」というメッセージが表示されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-01 05:03:27
オリジナル
354 人が閲覧しました

Why Am I Getting the

「致命的なエラー: [] 演算子が文字列ではサポートされていない」問題のトラブルシューティング

この致命的なエラーは、短い構文を使用しようとすると発生します非配列変数 (通常は文字列) に対する配列プッシュ操作の場合。提供されたコード スニペットを調べると、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート