我有一个PHP (8.2) 中的示例函数,它返回一个array
,在这个array
中还有一个object
,更准确地说是stdClass
。
我使用PHPStan作为静态分析器工具。我如何在语法上正确地指定这个(对象形状)结构,以便使用PHPStan数组形状在@phpstan-return
中使用它?
示例函数getBooks()
:
function getBook(): array
{
$author = new stdClass();
$author->firstName = 'John';
$author->lastName = 'Doe';
return [
'id' => 12345,
'title' => 'Whoever may help me deserves a big "Thank You!"',
'authors' => $author,
];
}
我已经尝试过的是无效语法:
/**
* @phpstan-return array{
* id: int,
* title: string,
* authors: object{
* firstName: string,
* lastName: string,
* },
* }
*/
我肯定已经知道的是,这里的object { .. }
部分在语法上是不正确的。
1条答案
按热度按时间f45qwnt81#
可以使用
array<keyType, valType|valType|...>
模式定义关联数组体系结构:或指定它是混合数组: