/** * @param ZoneInterface $zone * @param CityInterface $city * * @return boolean City is contained in zone */ public function isCityContainedInZone(ZoneInterface $zone, CityInterface $city) { return $zone->getMembers()->filter(function (ZoneMemberInterface $zoneMember) { return $zoneMember instanceof ZoneCityMemberInterface; })->exists(function ($_, ZoneCityMemberInterface $zoneCityMember) use($city) { return $city->equals($zoneCityMember->getCity()); }); }