ドキュメントの手順どおりにやったはずだし 以前も使ったことがあるもので そのときは出た覚えのないエラー
新しいバージョンのみで発生?
エラーでググっても全然情報は無し
よくわからないし 中身まで見たくないしと動いてる環境からフォルダをコピーして来て 環境固有の設定だけ変更
これでも変わらず発生する
PHP バージョンはどっちも 8.0
仕方なくエラーが起きてるファイルと行数から中身を見てみることに
エラーの原因は null が来るはずないところで null が来てるせいみたい
null が想定されてないので null を渡すとエラーになる関数に null を渡して実行時エラー
どこで null が混入してる?と探してみると正規表現を使う関数で null が返ってきてる
引数を dump して見てみても どう考えても null になりそうにはないんだけど
コマンドラインで同じ処理を実行してみると warning が出た
preg_replace(): Compilation failed: unrecognised compile-time option bit(s) at offset 0
このせいで null になってるみたい
だけど 見たこと無いエラー
正規表現のコンパイルエラーだから不正な正規表現を入れると起こりそうだけど 特に問題ないはず
というかこれでも出る
echo preg_replace('/a/', 'b', 'abc');
PHP がバグってる?
こっちの warning でググってみると PHP ではなく libpcre の問題みたい
https://stackoverflow.com/questions/70040287/php7-4-preg-replace-compilation-failed-unrecognised-compile-time-option-bi
AlmaLinux9 だったので
dnf upgrade pcre2
で更新したら 10.40 になって エラーも出なくなった