array-key型
配列のキーを表す #PHPStanの型 。配列でキーの型を省略するとarray-key型になる。
内部的にはbenevolent union型として実現されていて、PHPStan\dumpType()で表示すると(int|string)になる。
https://phpstan.org/r/0cc99149-4b7e-404e-933e-b26d3c72d74c
code:php
/**
* @param array<int|string, mixed> $a
* @param array<mixed> $b
*/
function f(array $a, array $b): void
{
foreach ($a as $key => $value) {
\PHPStan\dumpType($key); // Dumped type: int|string
$_ = strlen($key);
// => Parameter #1 $string of function strlen expects string, int|string given.
}
foreach ($b as $key => $value) {
\PHPStan\dumpType($key); // Dumped type: (int|string)
$_ = strlen($key);
// No error.
}
}