Netbeans代码完成显示循环遍历对象的无用信息

时间:2015-09-05 15:54:32

标签: php netbeans pdo

我有以下代码:

    $teamdbCall = new TeamDAL();
    $playersInTeam = $teamdbCall->GetStartedTeams(); //PDO::fetchall result returned

    //var_dump($playersInTeam);
    foreach($playersInTeam as $team)
    {
        /*@var $team Team*/
        echo $team->Name . "<br />";  //GENERATED public property
        echo $team->name . "<br />";  //private property
        echo $team->get_teamname() . "<br />";  //public getter
    }

运行此命令时,PDO fetchAll()结果将作为对象数组返回到变量$ playersInTeam。

通过var_dump观察数组时,它显示了团队类的私有对象属性(例如小写“名称”)。 var_dump还显示自动生成的公共属性,这些属性与私有属性相同,但以大写字母开头(例如“名称”)。

我尝试在foreach循环中回显结果。第一行:echo $ team-&gt; Name按预期工作,它显示名称。第二行不起作用......正如预期的那样,因为它是一个私人财产。

但我想使用第三个版本,团队对象的公共getter。代码完成仅显示那些公共getter,而不是公共属性和私有属性。

因此,当其他人使用GetStartedTeams()尝试循环时,他需要猜测属性并始终使用大写资本。这很奇怪,因为给出的提示显示了公众的吸气剂,随时可以使用。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是将PHPdoc添加到基本的Team类文件

<?php
/**
 * Team class
 *
 * @property $Teamname   //<-- this line makes the code completion usefull
 */
class Team{
    private $teamname;
}
?>