我有以下代码:
$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()尝试循环时,他需要猜测属性并始终使用大写资本。这很奇怪,因为给出的提示显示了公众的吸气剂,随时可以使用。
知道如何解决这个问题吗?
答案 0 :(得分:0)
此问题的解决方案是将PHPdoc添加到基本的Team类文件
<?php
/**
* Team class
*
* @property $Teamname //<-- this line makes the code completion usefull
*/
class Team{
private $teamname;
}
?>