如何指定IDE Netbeans,PHP变量具有特定类型?

时间:2014-02-04 07:41:45

标签: php netbeans phpdoc

我有一些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();

但它对代码完成没有帮助。

3 个答案:

答案 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键。

Source for this answer on the Oracles's netbeans php blog.

答案 1 :(得分:0)

你必须在一个单独的函数中隔离foreach迭代的代码,你可以使用phpDoc表示法以及类型提示

答案 2 :(得分:0)

有些IDE已经实现了一种记录这样的局部变量的方法,尽管据我所知,格式并不是完全标准化的IDE,也不是phpDoc语法(虽然它是在PHP-FIG的PSR5草案中提出的)。

使用@var标记指示要记录的局部变量的数据类型。各种IDE实现中的语法可变性通常是这些值的排序,例如,它是@var \KIdea $idea还是@var $idea \KIdea。由于这不是与OOP代码元素相关联的文档块,因此它需要本地变量的名称才能将其信息与正确的变量联系起来。