古いプログラムのPHP8.1へのアップデート
PHP7.4系が2022年11月28日で公式サポート終了となりました。弊社でも古いプログラムをPHP8.1へアップデートしています。そのときの改修作業の記録です。
対象は、2015年頃に作成したプログラムです。当時はPHPが5.5~5.6ぐらいでした。
ファイル名:行 Undefined variable $変数名
定義されていない変数を呼び出すとエラーになります。
echo h($description);
PHP5の頃だと、↑のようにカジュアルに書いて画面出力するようなケースもありましたが、現在はエラーになります。
if (isset($description)) { echo h($description); }
↑のように、例えばisset($description)のように、変数がセットされているかチェックする必要があります。
ファイル名:行 Undefined array key $配列名
配列の定義されていないキーを呼び出すとエラーになります。先ほどは定義されていない変数でしたが、今回はその配列バージョンですね。
echo h($blog['description']);
PHP5の頃だと、↑のようにカジュアルに書いて画面出力するようなケースもありましたが、現在はエラーになります。
if (array_key_exists('description', $blog)) { echo h($blog['description']); }
↑のように、例えばarray_key_exists('description', $blog)のように、配列のキーがセットされているかチェックする必要があります。
Non-static method クラス::メソッド cannot be called statically
スタティックでないメソッドを、スタティックに呼び出そうとしているとエラーになります。
public static function メソッド()
↑のように、staticキーワードを追加しました。
※本記事では、弊社のプログラムの改修時に遭遇したものを列挙していますが、それ以外にも改修が必要なものがあるかもしれません。