Translate

2024/02/07

【覚書】PHPバージョンをPHP7.4からPHP8.1に変更、注意点

次の自動作成プログラム三点につき、サーバーのPHPバージョンをPHP7.4からPHP8.1に変更した。(※PHP8は、23年11月にPHP8.3がリリースされたが、使用中のサーバーの推奨は現時点でPHP8.1)
(1)株式会社設立書類自動作成プログラム
(2)合同会社設立書類自動作成プログラム
(3)一般社団法人設立書類自動作成プログラム

PHP8.1ではコードに厳密さが要求される。PHP7.4まではギリギリ許容されていた曖昧な記述が、PHP8.1では致命的エラーになることも。また下位互換性のない変更もある。

そのためサーバーのPHP設定をPHP7.4からPHP8.1に変更する際、全PHPファイルにつき細かい修正が必要になる。特に次の二点に留意。

1.PHP8.1で「Warning: Undefined array key "xxx"...」 の警告が出たら 

isset()で値がセットされているか調べ、「true」が返された場合のみ処理を実行するように修正する。
<例>
  旧)
    $xxx = $_REQUEST["xxx"];
   ↓↓↓
  新)
  if(isset($_REQUEST['xxx'])){
    $xxx = $_REQUEST["xxx"];
  }

2.PHP8.1で「Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in ... 」のエラーが出たら

get_magic_quotes_gpc() 関数は、すべて削除又はコメントアウトする。
即ち、get_magic_quotes_gpc()​関数(エスケープ処理の設定がonかoffか調べる関数)は、PHP7.4ですでに非推奨となり、この関数を呼ぶと、エスケープ処理の設定がどうあれ、常にfalseが返されていた。つまり、この関数は呼ぶ意味がなかった。
PHP8.1でついに廃止され、この関数を呼ぶと致命的エラー(Fatal error)になる。
したがって、この関数の記述はすべて削除又はコメントアウトする。