在以下代码中, $quiz_object->personalities
包含一组 Personality
对象。
// Loop through each personality that exists for the quiz
foreach($quiz_object->personalities AS $existing_personality)
{
// Show all of the existing personalities
echo $existing_personality->GetQuizMakerPersonalityHTML();
}
我如何在 foreach 循环中“转换”(我认为这是正确的词)我的变量 $existing_personality
作为对象类型?
我希望这样做,以便在我键入 $existing_personality->
时,我得到该对象类型可用的公共函数列表。
更新
目前,Zend Studio 不知道我正在遍历 Personality
循环中的对象数组,它只是认为这是一个标准变量。但是,它是一种类型,我的代码运行良好。我只希望 IDE 在 foreach 循环中提示我的变量。
为了清楚起见,如果我有:
$personality_object = new Personality();
// I get the IDE hints here
echo $personality_object->MyFunction();
但是一旦我开始在 foreach 中循环,Zend 就无法知道我正在循环对象数组。
这就是最初在我的 Personality
对象中定义人格数组的方式:
class Personality
{
// Array of Personality objects
public $personalities = array();
}
原文由 Luke 发布,翻译遵循 CC BY-SA 4.0 许可协议
这在很大程度上取决于您使用的 IDE。
在 Netbeans 和 IntelliJ 中,您可以在评论中使用
@var
:IDE 现在将知道 $variable 属于类 ClassName 并在
->
之后提示。您也可以在自己的 IDE 中试用它。
您还可以在
getPersonalities()
方法中创建一个@return
注释,声明返回将是一个ClassName[]
,这意味着一个 ClassName 对象数组:这也取决于您的 IDE 如何解释这种类型的提示。
要在 foreach 循环中使用它,您可以执行 1:
或 2:
如果您的 IDE 足够好,两者都应该启用 IDE 提示。
作为额外说明,如果你想在它自己的类中使用它,你可以在声明类变量时使用相同的签名: