【PHP】PHP7.2.x、Use of undefined constantエラー

2019年6月12日PHP

PHP7.2.x系統で出るWarningエラー「Use of undefined constant」

連想配列のキー名をシングルクォーテーションまたはダブルクオーテーションで囲っていいない場合にエラーとして処理される様になったのですね

Use of undefined constantエラーが出るパターンの修正

以下の記述だとPHP7.2.x以降はエラーが出る

$data[name] = 'NAME’;

ちゃんとクォーテーションで囲う様に修正

$data['name’] = 'NAME’;

囲うならダブルクオーテーションよりシングルクォーテーションの方が少し早いみたいです

PHPマニュアルを見る限り、クォーテーションで囲わない連想配列キー名は7.1x系統までは、禁止されていながらも(下位互換ということで?)定数を文字列に変換してくれていたので機能はしていただけってところ

わかってなくて動くなら良いじゃないかと、やらかしていた古いコンテンツのPHPコードが結構ありまして・・

PHPのバージョンアップはサブドメイン含むドメイン単位なので、7.2以降にするにはそのドメイン下にあるファイル全てをチェック・修正しなくちゃなんですよね

今でもエラーを出力しつつ、動いてはくれてる?なら一旦PHPエラーを非表示にして修正していくか

チェックが必要なファイルの数が多いと手動ではきつい、チェック修正用のスプリクト書いて実行するしかないですね

2019年6月12日PHP

Posted by Yousuke.U