「Array and string offset access syntax with curly braces is no longer supported in」エラーの解決法

WordPressやPHPを使っていると、突然次のようなエラーに出くわすことがあります。

Fatal error: Array and string offset access syntax with curly braces is no longer supported in…

これは、PHPのバージョン7.4以降で非推奨となった構文を使っていることが原因です。
具体的には、配列や文字列の要素にアクセスする際に「波かっこ {}」を使っているコードがある場合に発生します。

このエラーの原因は?

PHP 7.4からは、以下のような書き方がサポートされなくなりました。

phpコピーする編集する// 古い書き方(NG)
$string = "example";
$char = $string{2};  // PHP 7.4以降ではエラーになります

代わりに、角かっこ [] を使う必要があります。

phpコピーする編集する// 新しい書き方(OK)
$string = "example";
$char = $string[2];  // 正しい構文

同様に、配列のアクセスでも波かっこは使用できません。

解決方法

  1. エラーが発生しているファイルを確認
     エラーメッセージには、どのファイルの何行目でエラーが出ているかが記載されています。まずはそのファイルを開きましょう。
  2. 波かっこ {} を角かっこ [] に修正
     例えば以下のようなコードを…
phpコピーする編集する$array = array("apple", "banana");
echo $array{0};  // NG

 次のように書き換えます。

phpコピーする編集するecho $array[0];  // OK
  1. プラグインやテーマに原因がある場合は?
     自作ではなく、外部のプラグインやテーマが原因でこのエラーが出ている場合、最新版にアップデートすることで解決することがあります。
     もし更新が提供されていない場合は、開発元に問い合わせるか、自分でコードを書き換える必要があります(バックアップを忘れずに!)。

一時的な対処法(非推奨)

どうしても修正できない場合、PHPのバージョンを7.3以下に下げることで一時的にエラーを回避できます。
ただしこれはセキュリティ的におすすめできません。根本的にはコード修正が必要です。

まとめ

このエラーは、PHPの仕様変更により発生する「コードの古さ」が原因です。
今後もPHPは進化し続けるため、互換性のあるコードを書くことが重要です。
今回のような場合は、波かっこ {} を角かっこ [] に書き換えるだけで多くの問題が解決します。

安全で安定した運用のためにも、定期的にコードのメンテナンスとPHPのバージョンチェックを行いましょう。

スマホで広角レンズのような室内写真を撮る方法<i-phone編>

Home
つくる
特長
無料相談
公式LINE
問合せ