我有:
$myarr['DB'] = new DB(); $myarr['config'] = new config();
我能让PHPSorm知道thouse键里面到底有什么吗?现在我只看到了变量和类属性的提示,但没有数组键。
v2g6jxz61#
迟来的答复,但情况有变。根据2021.2变更列表,现在可以用一行注解定义简单数组的形状:
/** * @return array{id: int, name: string, object: \Of\Some\Class} */ function getArray(): array {...}
如果代码中存在类似对象的数组,现在可以使用以下PHPDoc注解定义它们的结构:数组{键:类型,键:键入,...}。PhpStorm为这种带注解的数组提供了代码完成功能,减少了您在日常输入上花费的时间,并保护您免受错误的影响。支持仅限于单行数组形状定义。对于较大的结构,使用真实的对象和类通常更好。不幸的是,我还没有找到定义多维数组结构的方法,如果能注解一个这样的“形状”数组的列表,那就太好了。
ha5z0ras2#
https://plugins.jetbrains.com/plugin/9927-deep-assoc-completion
图片来自插件的github存储库。我使用插件,并可以确认它的表现如所述。
jei2mxaa3#
您可以预先定义数组键,然后PHPSorm将建议它们(CTRL+空格)
$my = array(); $my['qwe'] = ''; $my['asd'] = ''; $my['zxc'] = ''; $my['']// inside '' will be autosuggest
您也可以使用phpdoc(CTRL+Q):
/** * keys: * <pre> * some_array (array) * some_bool (boolean) * some_double (double) * some_nice_integer (integer) * </pre> * @return array */ public function toArray(){ // return some array }
d8tt03nd4#
此功能在PhpStorm中尚未实现。请投票支持support array access功能请求。你也可以试试silex idea plugin。
l0oc07j25#
根据https://youtrack.jetbrains.com/issue/WI-59083/recognize-use-of-list-with-array-shapes,现在甚至可以描述列表中的项目形状:
/** * @return array<int, array{id: int, name: string}> */ function getShapedArray(): array {...}
可以很好地处理for循环,但在以下情况下无法完成:
$array = getShapedArray(); $elementId = 2; // No completion for name property. $array[$elementId]['name'];
ef1yzkbh6#
对于任意数组,PHPSorm不知道在任何数组中使用的键,因此在那里不提供提示。甚至可以证明可靠地实现这样的特性是impossible,所以我认为您在这里运气不好。采集自:Stackoverflow Answer
ngynwnxp7#
$obj = (object)[]; // Cast empty array to object add properties: $obj->x = 'some' $obj->y = 'hints'
现在,PHPSorm,当输入$obj->时.....提示x和y
$obj->
7条答案
按热度按时间v2g6jxz61#
迟来的答复,但情况有变。
根据2021.2变更列表,现在可以用一行注解定义简单数组的形状:
如果代码中存在类似对象的数组,现在可以使用以下PHPDoc注解定义它们的结构:数组{键:类型,键:键入,...}。
PhpStorm为这种带注解的数组提供了代码完成功能,减少了您在日常输入上花费的时间,并保护您免受错误的影响。
支持仅限于单行数组形状定义。对于较大的结构,使用真实的对象和类通常更好。
不幸的是,我还没有找到定义多维数组结构的方法,如果能注解一个这样的“形状”数组的列表,那就太好了。
ha5z0ras2#
https://plugins.jetbrains.com/plugin/9927-deep-assoc-completion
图片来自插件的github存储库。我使用插件,并可以确认它的表现如所述。
jei2mxaa3#
您可以预先定义数组键,然后PHPSorm将建议它们(CTRL+空格)
您也可以使用phpdoc(CTRL+Q):
d8tt03nd4#
此功能在PhpStorm中尚未实现。请投票支持support array access功能请求。
你也可以试试silex idea plugin。
l0oc07j25#
根据https://youtrack.jetbrains.com/issue/WI-59083/recognize-use-of-list-with-array-shapes,现在甚至可以描述列表中的项目形状:
可以很好地处理for循环,但在以下情况下无法完成:
ef1yzkbh6#
对于任意数组,PHPSorm不知道在任何数组中使用的键,因此在那里不提供提示。甚至可以证明可靠地实现这样的特性是impossible,所以我认为您在这里运气不好。
采集自:
Stackoverflow Answer
ngynwnxp7#
现在,PHPSorm,当输入
$obj->
时.....提示x和y