質問: array();//明示的にarrayとして初期化 などを試しましたがエラーは変わらず出ます。 これはどうしたら解決できますでしょうか。 また、PHPのバージョンアップ時のどの仕様変更が原因でこのエラーが発生しているのでしょうか。
回答: 本当だ!7.0系から7.1系に変えると、振る舞いが違いますね。 sandboxで7.0.14と7.1.0を変えて試せます。 > > エラー文をググった限りの対処法、たとえば > > $HOGE = array();//明示的にarrayとして初期化 > > などを試しましたがエラーは変わらず出ます。 > > > ただ、これは初期化を文字列でしてしまった時だけに起こるので、この`while`ループに来る前に、 `$HOGE = '';`などと初期化してませんか? `$HOGE`を何も初期化していないなら、7.0でも7.1でも勝手に配列を作ります。 追記 マニュアルにも文字列から配列の変更に際して、注意書きがしてありますね。 PHP: 文字列 7.1から変わった部分があるみたいなので、少々注意が必要そうです。 初期化→利用、という流れをこれまで以上に意識する必要がありそうです。