JHiscock Posted March 5, 2008 Share Posted March 5, 2008 Hi, I'm pretty new to PHP programming, I come from java and I'm trying to do some stuff with OOP. For now I'm trying to create an array of classes, then loop through them printing their values with a foreach loop. My code is as follows: class Answer { private $answerClass; private $answerText; private $answerURL; public function __construct($class, $text, $url) { $this->answerClass = $class; $this->answerText = $text; $this->answerURL = $url; } public function getClass() { return $this->answerClass; } public function getText() { return $this->answerText; } public function getURL() { return $this->answerURL; } } $answerOne = new Answer("Left", "Left", "http://www.google.com"); $answerTwo = new Answer("Right", "Right", "http://www.google.com"); $allAnswers = array(); $allAnswers[] = $answerOne; $allAnswers[] = $answerTwo; foreach ($allAnswers as $answer); { echo ($answer->getClass() . " " . $answer->getText() . " " . $answer->getURL()); } My expectation is that this would output LeftLefthttp://www.google.comRightRighthttp://www.google.com. However it seems to only output RightRighthttp:www.google.com I'm sure I'm doing something stupid here, and I spent about an hour last night going through tutorials etc trying to find out why but no luck. Could someone please explain what's going on? When I print a count($allAnswers) I get 2, which suggests to me I'm doing something wrong with the foreach... Thanks in advance. Link to comment https://forums.phpfreaks.com/topic/94393-arrays-and-foreach/ Share on other sites More sharing options...
jedney Posted March 5, 2008 Share Posted March 5, 2008 Try the OOP Help forum. May have better luck. Link to comment https://forums.phpfreaks.com/topic/94393-arrays-and-foreach/#findComment-483449 Share on other sites More sharing options...
JHiscock Posted March 5, 2008 Author Share Posted March 5, 2008 Ok, I was unsure if I should or not cos I wasn't sure if the problem was related to my OOP or use of the foreach. Link to comment https://forums.phpfreaks.com/topic/94393-arrays-and-foreach/#findComment-483476 Share on other sites More sharing options...
Dudditz Posted March 5, 2008 Share Posted March 5, 2008 You have a semi-colon in your foreach() foreach ($allAnswers as $answer); { echo ($answer->getClass() . " " . $answer->getText() . " " . $answer->getURL()); } Works this way foreach ($allAnswers as $answer) { echo ($answer->getClass() . " " . $answer->getText() . " " . $answer->getURL()); } Link to comment https://forums.phpfreaks.com/topic/94393-arrays-and-foreach/#findComment-483577 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.