[] operator not supported for strings の対処方法

PHP5.4 / /8.3 へ切替えの検証をしていたら、【システムは問題なく動くけれど検証ツールに500エラーが表示される問題】が発生しました。

エラー箇所を確認すると以下のようなエラーメッセージが。

PHPのエラーメッセージ

Fatal error: Uncaught Error: [] operator not supported for strings in ~

配列の初期化をきちんと記載していないことが原因らしいので、
これを、

foreach ($rows as $row) {
  $sample["result"]["code"][] = $row["sampleCode"];
}

こうしたら、

foreach ($rows as $row) {
  $sample["result"]["code"][] = $row["sampleCode"];
}

エラーは出なくなりましたが今度は上手く動かなくなってしまった…。

また暫く検証ツールと睨めっこを続けていると、codeの中身が数値になっているのを発見。
これのせいか…。

{status: 1, result: {code: [1, 2, 3]}}

数値から文字列に変換して無事解決しました。
これPHP7.1から発生してたんですね。忘れないようにメモ。

最終的なコード

$sample["result"]["code"][] = array();

foreach ($rows as $row) {
  $sample["result"]["code"][] = (string)$row["sampleCode"];
}