Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Object-Oriented PHP Basics Building a Collection Collection Objects

Object-Oriented PHP Basics: I'm stuck at this function, don't know what is wrong, don't know how to proceed

public function filterHouseColor($color) { $lots = array(); foreach($houses as house) { if (($house->roof_color == $color) || ($house->wall_color == $color) { $lots[] = $house->lot; } } return $lots; }

Any help would be appreciated.

Many thanks.



// add code below this comment

Class Subdivision
    public $houses = array(); 

    public function filterHouseColor ($color)
      $lots = array();
      foreach($houses as $house)
        if(($house->roof_color == $color) || ($house->wall_color == $color))
          $lots[] = $house->lot;

      return $lots;


3 Answers

Simon Coates
Simon Coates
28,693 Points

try using foreach($this->houses as $house) PHP seems to need to be told that the variable is on the current object.

Wayne Comber
Wayne Comber
8,169 Points

That fixed it for me :)

Thanks, Wayne you're right. That was the problem. It's working now.


Thanks, Simon, you're right.