🐶

NullableTypeとNullType

2023/09/05に公開

?stringnull|stringをPHPStanで解析すると、いずれもPHPStan\Type\UnionTypeとして解析される。
PHPStan\Type\UnionTypePHPStan\Type\NullTypePHPStan\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