/** * magic method - gets an Answer property * @param $aID * @return Answer * @throws \Exception */ public function __get($aID) { $id = str_replace("a", "", $aID); $optionDefinitions = $this->questionDefinition->getOptionDefinitions(); $answers = $this->poll->getAnswers(); foreach ($optionDefinitions as $optionDefinition) { if ($optionDefinition->getId() == $id) { if ($answers->isEmpty()) { $answer = new Answer(); $answer->setPoll($this->poll); $answer->setOptionDefinition($optionDefinition); return $answer; } else { $contains = false; $foundAnswer = null; foreach ($answers as $an) { if ($an->getOptionDefinition()->getId() == $id) { $contains = true; $foundAnswer = $an; } } if ($contains) { return $foundAnswer; } else { $answer = new Answer(); $answer->setPoll($this->poll); $answer->setOptionDefinition($optionDefinition); return $answer; } } } } throw new \Exception("invalid id"); }