PHPStanでUnionの型で怒られた場合の対応方法

PHPStanは型をチェックしているのですが、たまにUnion型で怒られることがあります。
$u = $this->getUsers();
//$u は array|string だと推論されるが、stringとして扱いたい
getUsers()は array|stringを返すメソッドだとします。
この場合、$u は array|string になるのですが、続く処理で $u を string として扱いたい場合があります。
その場合は、is_string()を使って型を狭めます。
$u = $this->getUsers();
if (is_string($u)) {
// $u は string だと判定される
}
公式ドキュメントも参考になります。
最近のコメント