class-string型
静的解析ツールに実装された独自の型。基本的にはPHPDocに書くことで用いる。 マニュアル
of のサポートあり
of のサポートあり
of のサポートなし
2021.2(Beta) 以降でサポート
of のサポートなし
stringからclass-string型をつける方法
code:php
<?php declare(strict_types = 1);
function f(string $class): void {
\PHPStan\dumpType($class); // Dumped type: string
// if 文の中では class-string<Exception> として扱われる
if (is_a($class, Exception::class, true)) {
\PHPStan\dumpType($class); // Dumped type: class-string<Exception>
}
// アサーションすると、これ以降はは class-string<Exception> として扱われる
assert(is_a($class, Exception::class, true));
// コメントでもPHPStanに型を認識させられない
/** @var class-string<\Throwable> $class */
}