我有一些PHP代码的文件,如下所示:
<?php
foreach ($ideas as $key => $idea) {
$idea->getIdeaId();
?>
<tr>
<td>
</td>
<td>
</td>
</tr>
<?php
}
?>
Variable $ ideas是一个KIdea类型的对象数组。我如何告诉Netbeans $idea
foreach
中哪些类型为KIdea
?
需要代码完成。
我试过像
这样的东西 <?php
/**
* @param KIdea $ideas Description
*/
foreach ($ideas as $key => $idea) {
等等
<?php
foreach ($ideas as $key => $idea) {
/**
* @var KIdea Description
*/
$idea;
$idea->getIdeaId();
但它对代码完成没有帮助。
答案 0 :(得分:1)
使用netbeans,您可以使用以下语法记录变量:
/* @var $variable MyClass */
$variable = getSomething();
// netbeans will assume that your variable is the MyClass type and will provide code completion.
要自动填写此字符串,您可以使用以下快捷方式:键入vdoc
并按Tab
键。
答案 1 :(得分:0)
你必须在一个单独的函数中隔离foreach
迭代的代码,你可以使用phpDoc表示法以及类型提示
答案 2 :(得分:0)
有些IDE已经实现了一种记录这样的局部变量的方法,尽管据我所知,格式并不是完全标准化的IDE,也不是phpDoc语法(虽然它是在PHP-FIG的PSR5草案中提出的)。
使用@var
标记指示要记录的局部变量的数据类型。各种IDE实现中的语法可变性通常是这些值的排序,例如,它是@var \KIdea $idea
还是@var $idea \KIdea
。由于这不是与OOP代码元素相关联的文档块,因此它需要本地变量的名称才能将其信息与正确的变量联系起来。