如何告诉PhpStorm某个变量已被定义

3
我在PhpStorm中使用Yii2框架。
当我使用$this->render函数将另一个代码片段与一些变量包含到我的主文件中时,我的问题出现在视图中。
代码本身完美运行,但我的问题在于突出显示(highlightings)。
这是我的代码:
<?php
echo $this->render('commentsBlock', [
            "comments" => $comments,
            'deleteURL' => $deleteURL,
            'editURL' => $editURL,
        ]);
?>

以上代码呈现了commentsBlock.php的内容,其目标文件的内容如下: enter image description here enter image description here 可以看到,PhpStorm认为变量未声明,但实际上已经定义。
我知道我需要添加一些注释来告诉IDE变量确实存在,但我尝试过的方法都没有生效。
我做了这个: enter image description here 但它没有高亮显示。
有没有想法如何编写正确的注释部分以欺骗IDE突出显示我的变量?

3
尝试使用双星号 (/** @var array $comments */),或者是 @global 注释来实现。 - Michał Haracewiat
相关 https://dev59.com/ImbWa4cB1Zd3GeqPaMR4 https://stackoverflow.com/q/42837882/2943403 - mickmackusa
@mickmackusa 我不是给他提供解决方案,而是要求他检查一些东西。一旦 Harry 确认这解决了他的问题,我会将其发布为解决方案。我不想发布任何我不确定的内容。 - Michał Haracewiat
你的措辞并没有表明你在寻求回应。 - mickmackusa
1
@harry你一定需要声明变量类型吗?这个行得通吗?(我现在没法在电脑上测试)https://stackoverflow.com/a/31730971/2943403 - mickmackusa
显示剩余2条评论
1个回答

9

使用 vardoc 的方法如下:

/* @var $comments array */

这个语法与phpdoc标准略有不同(注意变量名和类型顺序已经交换),但它被许多IDEs(包括PhpStorm)广泛认可。

更多参考资料可以查看这个答案


2
请查看此链接:https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#824-var - Vipertecpro
这不应该是 /** @var $comments array */ 吗? - Déjà vu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接