🐶
NullableTypeとNullType
?string
とnull|string
をPHPStanで解析すると、いずれもPHPStan\Type\UnionType
として解析される。
PHPStan\Type\UnionType
はPHPStan\Type\NullType
とPHPStan\Type\StringType
を含んでいる。
PHP Parserで解析すると、前者はPhpParser\Node\NullableType
として、後者はPhpParser\Node\UnionType
として解析される。
まとめると、ノードを表すPHP Parserのクラスと型を表すPHPStanのクラスがあるという話。
PhpParser\Node\NullableType
PhpParser\Node\UnionType
PHPStan\Type\NullType
PHPStan\Type\UnionType
Discussion