我能告诉PhpStorm函数的返回类型是什么吗?
因此,如果我有一个函数,并且在PHPDoc中我指定它将返回一个我能告诉PhpStorm函数的返回类型是什么吗?,phpstorm,Phpstorm,因此,如果我有一个函数,并且在PHPDoc中我指定它将返回一个SqsProcessResult对象,然后我调用一个函数来创建一个新的对象,但是该函数的PHPDoc表示返回类型为对象(因为它是一个通用工厂函数)PhpStorm抛出一个橙色警告 我是否可以注释或以其他方式告诉PhpStorm返回类型将是SqsProcessResult?是的,您可以。。但由于问题的性质,它可能不是最干净/优雅的解决方案(至少其他人会这么说) 很少有选择: #1.只需取消对该行的检查 将插入符号置于突出显示的区域,
SqsProcessResult
对象,然后我调用一个函数来创建一个新的对象,但是该函数的PHPDoc表示返回类型为对象
(因为它是一个通用工厂函数)PhpStorm抛出一个橙色警告
我是否可以注释或以其他方式告诉PhpStorm返回类型将是
SqsProcessResult
?是的,您可以。。但由于问题的性质,它可能不是最干净/优雅的解决方案(至少其他人会这么说)
很少有选择:
#1.只需取消对该行的检查
- 将插入符号置于突出显示的区域,然后按Alt+Enter(或通过“灯泡”图标获得相同的菜单)
- 找到最合适的入口。。然后按向右箭头键(或鼠标单击小三角形图标)展开子菜单
- 一旦出现——选择
选项——一个新的内联PHPDoc注释将添加到tat行的正上方,指示PhpStorm忽略下一行中的特定检查Suppress for statement
/** @noinspection PhpIncompatibleReturnTypeInspection */
return \Yii::createObject(...);
- 优点:IDE端没有警告
- 缺点:额外的PHPDoc注释以满足IDE(考虑到具体情况需要)
#2.使用一些中间变量,您可以在适当的位置键入提示 添加类似以下内容,而不是现有的单行:
/** @var SqsProcessResult $res */
$res = \Yii::createObject(...);
return $res;
- 赞成者:无可奉告
- 缺点:额外的变量(还有额外的PHPDoc注释)基本上没有理由
Object
),然后在以后使用
#3.使用.metadata功能,并为实际的
\Yii::createObject()
提供解析逻辑(因此IDE根据输入参数选择正确的类)
这就是很多工具的工作原理:用于Laravel的IDE帮助程序、Symfony帮助程序、DI容器帮助程序等谢谢!第一个选项是我希望避免创建纯粹用于代码检查的变量。仅供参考,注释为
/**@noinspection PhpIncompatibleReturnTypeInspection*/
检查更新的答案--选项3。如果做得好——不需要任何评论(但你最好在Yii专用论坛上问这个问题——我想他们应该已经有了解决方案)。不是这个。。。但在这些行中: