gpt4 book ai didi

autocomplete - 如何在 DocBlock 中声明无限/可变参数?

转载 作者:行者123 更新时间:2023-12-03 13:27:06 26 4
gpt4 key购买 nike

假设我有一个函数(显然是一个微不足道的例子):

public function dot(){
return implode('.', func_get_args());
}

现在我知道我可以将其修改为
public function dot(array $items){
return implode('.', $array);
}

但有些功能不是一个选项。那么,您将如何使用 docBlock 记录函数的第一个版本,以便 IDE 可以解释它可以接收无限参数?

我见过一些使用的方法:
/**
* Joins one or more strings together with a . (dot)
* @param string $string1
* @param string $string2
* @param string $_ [optional]
* @return string
*/
public function dot($string1, $string2, $_ = null) {
return implode('.', func_get_args());
}

在 IDE 中看起来像 autocomplete example

但这对我来说就像是一个黑客,有没有办法只使用 docBlock 来做到这一点?

最佳答案

[2015-01-08 更新]

在 PHPDoc 中执行此操作的旧方法是:

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html

/**
* @param int $param,...
**/

但是,这不再受支持。从 PHP 5.6 开始,可变参数方法参数是 PHP 语言的一部分,如果我没记错的话,PHPDoc 已经更新以反射(reflect) PHPDoc 2.4 的这一点。这也在 EAP 139.659 的 PhpStorm IDE 中(应该在 8.0.2 及更高版本中)。不确定其他 IDE 的实现。

https://youtrack.jetbrains.com/issue/WI-20157

在任何情况下,用于可变参数参数的 DocBlocks 的正确语法是:
/**
* @param int ...$param
**/

关于autocomplete - 如何在 DocBlock 中声明无限/可变参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com