При использовании объявлений типов PHP PHPStan, похоже, считает, что я должен указывать элементы массива как в PHPDoc, так и в самом объявлении, но поправьте меня, если я ошибаюсь. PHP (по крайней мере, PHP 7) не поддерживает объявления членов массива. . Вот пример:
1: <?php
2:
3: class Foo
4: {
5: /*
6: * @var array<string>
7: */
8: private array $foo;
9: }
Это приводит к:
8 Property Foo::$foo type has no value type specified in iterable type array.
Обратите внимание: указанная строка имеет номер 8, а PHPDoc указывает элементы массива. Но говоря
...
8: private array<string> $foo;
...
недействителен PHP.
Если я пропущу объявление массива и оставлю PHPDoc, PHPStan выдаст:
8 Property Foo::$foo has no type specified.
Как обойти это предупреждение? Кажется, я выполнил инструкции в https://phpstan.org/blog/solve-phpstan-no-value-type-specified-in-iterable-type






Судя по вашим выводам, я думаю, что вам не хватает *, поэтому у вас есть комментарий, а не объявление строки документации.
<?php
class Foo {
/**
* @var array<string>
*/
private array $foo; }
Да! Спасибо, я это упустил из виду.
Это не докблок, а обычный комментарий.