value = (float)$value; $this->unit = (string)$unit; $this->description = (string)$description; } /** * Get the value as formatted string with unit. * * @return string The value as formatted string with unit. * * The unit is not included if it is empty. */ public function __toString() { return $this->getFormatted(); } /** * Get the value's unit. * * @return string The value's unit. * * This also converts 'celsius' to '°C' and 'fahrenheit' to 'F'. */ public function getUnit() { // Units are inconsistent. Only celsius and fahrenheit are not abbreviated. This check fixes that. if ($this->unit == 'celsius') { return "°C"; } else if ($this->unit == 'fahrenheit') { return 'F'; } else { return $this->unit; } } /** * Get the value. * * @return float The value. */ public function getValue() { return $this->value; } /** * Get the value's description. * * @return string The value's description. */ public function getDescription() { return $this->description; } /** * Get the value as formatted string with unit. * * @return string The value as formatted string with unit. * * The unit is not included if it is empty. */ public function getFormatted() { if ($this->getUnit() != "") { return "{$this->getValue()} {$this->getUnit()}"; } else { return "{$this->getValue()}"; } } }