結論
WindowsでPHPを8.2.0以降にアップデートしたときに、
PHP Fatal error: Uncaught Error: Class "ZipArchive" not found in ***
のエラーが出たら
php.iniに以下の1行を追加
extension=zip
アップデートすることになった理由
WindowsにPHPを入れて色々なツールを動かしているのだけど、PHP7.3.3でSplFileObjectを使ってCSVファイルを読み込むと、データ中に改行があって""で囲まれているCSVファイルがうまく読み込めない。
他のマシンで試すと同じコードで正しく読み込めた。他のマシンのPHPのバージョンを調べると8.2.2だったので、PHP7.3.3のマシンも8.2.2にアップデートすることにした。
結論に達するまで
PHPのコード中でZipArchiveを使っていると
PHP Fatal error: Uncaught Error: Class "ZipArchive" not found in ***
というエラーが出るので、PHPのドキュメントを調べてみると、
https://www.php.net/manual/ja/zip.installation.php
こちらのページに
PHP 8.2.0 以降では、 php_zip.dll を php.ini で有効にする必要があります。
と書いてある。「php_zip.dll を php.ini で有効にする」って何だ??と思って、PHP8.2.2をインストールしたときにできたphp.iniのサンプルphp.ini-productionを開いてキーワード「zip」で検索してみると、
;extension=zip
という行があったので、この行のコメントアウトを外して、php.ini に追記したらZipArchiveが使えるようになった。