【问题标题】:PHPDoc - Specify the type of array keysPHPDoc - 指定数组键的类型
【发布时间】:2014-08-14 00:53:06
【问题描述】:

如何在返回数组的 PHP 方法的文档中指定键的类型?


例如,我将它用于对象数组@return MyClass[]

但是我想评论array( 'string' => array( MyClass ) )这样的数组,这可能吗?

【问题讨论】:

  • @RahilWazir,我正在使用@return MyClass[] 在 PHPStorm 中完成代码,它运行良好......为什么我不应该这样做?只是说@return array,我怎么能得到正确的代码完成? 编辑: 此外,它位于官方 PHPDoc 站点:phpdoc.org/docs/latest/guides/types.html#arrays
  • 看到这个:stackoverflow.com/questions/15414103/… 我不知道 PHPStorm 代码完成。但是您可以在给出的答案中评论数组键,但我认为它不适用于代码完成
  • 您是否使用对象作为数组键?如果不是,当它不是对象时,您从数组键变量中寻找什么自动完成?我一定是错过了什么。
  • 记录数组键的数据类型没有固定的语法,所以我不确定是否有任何 IDE 尝试实现派生它的方法。有人提议努力使用“泛型”语法来形式化记录密钥数据类型的方法 (github.com/phpDocumentor/fig-standards/blob/master/proposed/…),但我不知道任何 IDE 也尝试过实现这一点。

标签: php arrays phpdoc


【解决方案1】:

为什么需要指定数据类型。您可以通过使用 foreach 循环遍历结果来访问数组中的值。

例如:

$arr = array("name" => "MikO", "street" => "straatnaam", "number" => "2");


//Here is key the first key, in this case: name, street, number
//And value are the values of the keys, in this case: MikO, straatnaam, 2

foreach($arr as $key => $value)
{
echo $key." ".$value."<br/>";
}

您还可以使用以下方法从中提取一些特定数据:

echo $arr['name'];

如果你想进入对象:

foreach($arr as $objname => $objcontent)
{
 foreach($objcontent as $objnodename => $objnodevalue)
{
echo $objnodename." = ".$objnodevalue;
}

}

【讨论】:

  • 谢谢伙计,但幸运的是我已经知道如何循环遍历数组:) 我想要的是为这种数组添加适当的文档,以便在我的 IDE 中获得代码提示,这没什么可做的做你的答案...
  • @MikO 抱歉,您可以在代码中添加 cmets 还是不够好?
  • 这对(某些)人类来说可能已经足够了,但对 PHPStorm 来说却不是这样,它不能只理解文本 cmets 并给我代码补全......
【解决方案2】:

问题发生多年后,可以使用例如@return array&lt;integer, string&gt; 为由整数键索引的字符串值数组记录数组键和值。

我不知道这种语法在多大程度上是标准的并且得到很好的支持。 PHPCSPsalm 等工具确实支持它。

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多