protected function set__minStarRating($value) { $value = (double) $value; $this->minStarRating = MathUtils::bound(MathUtils::roundHalf($value), self::STAR_RATING_MIN, self::STAR_RATING_MAX); if (isset($this->maxStarRating) && $this->minStarRating > $this->maxStarRating) { $this->minStarRating = $this->maxStarRating; } }
/** * Will match SEARCH_RADIUS_* constants. * Will also convert human-like units (e.g. m, mile, or miles) to values that correspond with SEARCH_RADIUS_* automatically. * If the unit was changed from its previous setting, automatically converts `searchRadius` from the old unit to the new unit. * @param string $value */ protected function set__searchRadiusUnit($value = null) { $originalValue = $this->searchRadiusUnit; $value = strtoupper(trim((string) $value)); if (!$value) { $this->searchRadiusUnit = self::SEARCH_RADIUS_MILES; } else { if (in_array($value, array(self::SEARCH_RADIUS_KILOMETERS, self::SEARCH_RADIUS_MILES))) { $this->searchRadiusUnit = $value; } else { if (preg_match('/^m(ile(s)*)?$/i', $value)) { $this->searchRadiusUnit = self::SEARCH_RADIUS_MILES; } else { if (preg_match('/^k(ilomet(er|re)(s)*)?$/i', $value)) { $this->searchRadiusUnit = self::SEARCH_RADIUS_KILOMETERS; } } } } if (isset($this->searchRadius) && $originalValue != $this->searchRadiusUnit) { if ($this->searchRadiusUnit === self::SEARCH_RADIUS_MILES) { $this->set__searchRadius(MathUtils::kilometersToMiles($this->searchRadius)); } else { $this->set__searchRadius(MathUtils::milesToKilometers($this->searchRadius)); } } }