You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Psalm数组形状注解如何使用合法的多行拆分语法?

多行数组形状注解的支持情况

Psalm、PHPStan等主流PHP静态分析工具,以及2023.1及以上版本的PhpStorm,均原生支持你写的多行拆分array{}注解语法,你遇到的解析失败问题通常由版本不匹配或格式细节错误导致。

正确写法规范

你示例里的语法本身是合法的,只需要注意以下细节即可正常解析:

  • 每个键值对末尾的逗号不能遗漏,最后一个键值对后也支持加尾随逗号
  • 嵌套的大括号要保证层级匹配,无遗漏闭合
  • 每行PHPDoc开头的*符合标准格式要求,不要省略

合法示例:

/**
 * @return array{
 *     key1: type1,
 *     key2: type2,
 *     key3: array{
 *         nestedKey1: array<string, string>
 *     }
 * }
 */

旧版本兼容方案

如果使用的是2023.1之前版本的PhpStorm,或者低版本静态分析工具,无法升级的情况下可以用@psalm-type定义类型别名来拆分复杂结构,同样能降低单行注解长度、提升可读性:

<?php

/**
 * 定义嵌套结构的类型别名
 * @psalm-type NestedType = array{
 *     nestedKey1: array<string, string>
 * }
 */

/**
 * 引用别名实现精简注解
 * @return array{
 *     key1: type1,
 *     key2: type2,
 *     key3: NestedType
 * }
 */
function getResult(): array
{
    // 实现逻辑
}

内容的提问来源于stack exchange,提问作者Dinu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:15:03