エラーチェックのためにPHPで静的解析ツールをする場合、Phan, Psalm, PHPStan を使えば良いということは検索ですぐ出てくるのだが、どれを使えばいいのか。 それぞれのツールで検知できるものが微妙に異なっているので、全部使うのが安全ではある。 それでも動作の違いや思想の違いを知っておきたいので調べる。 github.com github.com github.com 自分がエラーを検知してほしいまたは正しく型チェックしてほしいと思うコードを用意してそれぞれチェックしてみるのが手っ取り早い。 思いつくコードを調べてみた。 設定は基本的に初期のまま。PhanはREADMEにある設定、Psalmはレベル1、PHPStanはレベル8にした。(PsalmとPHPStanで検知レベルの向きが逆である) <?php /** * @param array<int,string> $arr *