私は PHPStan を初めて使用し、理解できない問題に遭遇しました。
したがって、次のような配列を返すはずの関数がありますarray<a|b|c|d..., mixed>
(a、b、c、dはすべてクラス定数です)が、関数では、配列は次のようになります。
/**
* @return array<SomeConstants::*, mixed>
*/
function doSomething(){
return [
'key1'=>'value1'
'key2'=>'value2'
...
];
}
次のエラーが表示されます。
Method doSomething() should return array<a|b|c|d...,mixed> but returns array('key1'=>SomeObject|null,'key2'=>SomeObject2|null)
この配列が @return doc タグで定義されている配列に「似ている」と PHPStan に「信じさせる」にはどうすればよいですか?
私は何を試しましたか?
/**@var array<SomeConstants::*> $array**/
/**@phpstan-var array<SomeConstants::*> $array**/
どちらも問題なく動作しますが、私のコード レビュー担当者によると、配列に存在しないキーが存在すると PHPStan に強制するだけなので、これは「汚い」ソリューションです...