/** * Defined by Zend_Filter_Interface * * Returns the numerical value, from measure string * * @param string $value * @return integer|string */ public function filter($value) { $locale = $this->_measure->getLocale(); $matched = false; foreach ($this->_measure->getConversionList() as $key => $conversion) { if (preg_match("~^(.*)" . $conversion[1] . "\$~", $value, $matches)) { try { // $number = Zend_Locale_Format::getNumber(trim($matches[1]), array('locale' => $locale)); $this->_measure->setType($key)->setValue(trim($matches[1])); } catch (Exception $e) { continue; } $matched = true; } } return $matched ? $this->_measure->getValue() : $value; }
/** * Set a new type, and convert the value * * @param string $type New type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw new Zend_Measure_Exception("type ({$type}) is a unknown flow mass"); } // Convert to standard value $value = parent::getValue(); if (is_array(self::$_UNITS[parent::getType()][0])) { foreach (self::$_UNITS[parent::getType()][0] as $key => $found) { switch ($key) { case "/": $value /= $found; break; default: $value *= $found; break; } } } else { $value = $value * self::$_UNITS[parent::getType()][0]; } // Convert to expected value if (is_array(self::$_UNITS[$type][0])) { foreach (self::$_UNITS[$type][0] as $key => $found) { switch ($key) { case "/": $value *= $found; break; default: $value /= $found; break; } } } else { $value = $value / self::$_UNITS[$type][0]; } parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param $type new type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw Zend::exception('Zend_Measure_Exception', 'unknown type of number:' . $type); } $value = $this->toDecimal(parent::getValue(), parent::getType()); $value = $this->fromDecimal($value, $type); parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Compares two units * * @param Zend_Measure_Abstract $object object of same unit type * @return boolean */ public function compare($object) { $object->setType($this->getType()); $value = $this->getValue(-1) - $object->getValue(-1); if ($value < 0) { return -1; } else { if ($value > 0) { return 1; } } return 0; }
/** * Set a new type, and convert the value * * @param string $type New type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw new Zend_Measure_Exception("type ({$type}) is a unknown illumination"); } // Convert to standard value $value = parent::getValue(); $value = $value * self::$_UNITS[parent::getType()][0]; // Convert to expected value $value = $value / self::$_UNITS[$type][0]; parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param $type type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { self::throwException('unknown type of lightness:' . $type); } // Convert to standard value $value = parent::getValue(); $value = $value * self::$_UNITS[parent::getType()][0]; // Convert to expected value $value = $value / self::$_UNITS[$type][0]; parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw Zend::exception('Zend_Measure_Exception', 'unknown type of force:' . $type); } // Convert to standard value $value = parent::getValue(); $value = $value * self::$_UNITS[parent::getType()][0]; // Convert to expected value $value = $value / self::$_UNITS[$type][0]; parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param $type new type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { self::throwException('unknown type of kinematic viscosity:' . $type); } // Convert to standard value $value = parent::getValue(); if (is_array(self::$_UNITS[parent::getType()][0])) { foreach (self::$_UNITS[parent::getType()][0] as $key => $found) { switch ($key) { case "/": $value /= $found; break; default: $value *= $found; break; } } } else { $value = $value * self::$_UNITS[parent::getType()][0]; } // Convert to expected value if (is_array(self::$_UNITS[$type][0])) { foreach (self::$_UNITS[$type][0] as $key => $found) { switch ($key) { case "/": $value *= $found; break; default: $value /= $found; break; } } } else { $value = $value / self::$_UNITS[$type][0]; } parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param $type new type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { self::throwException('unknown type of binary:' . $type); } // Convert to standard value $value = parent::getValue(); $value = bcmul($value, self::$_UNITS[parent::getType()][0], 25); // Convert to expected value $value = bcdiv($value, self::$_UNITS[$type][0]); parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param $type new type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw Zend::exception('Zend_Measure_Exception', 'unknown type of temperature:' . $type); } // Convert to standard value $value = parent::getValue(); if (is_array(self::$_UNITS[parent::getType()][0])) { foreach (self::$_UNITS[parent::getType()][0] as $key => $found) { switch ($key) { case "/": $value /= $found; break; case "+": $value += $found; break; case "-": $value -= $found; break; default: $value *= $found; break; } } } else { $value = $value * self::$_UNITS[parent::getType()][0]; } // Convert to expected value if (is_array(self::$_UNITS[$type][0])) { foreach (self::$_UNITS[$type][0] as $key => $found) { switch ($key) { case "/": $value *= $found; break; case "+": $value -= $found; break; case "-": $value += $found; break; default: $value /= $found; break; } } } else { $value = $value / self::$_UNITS[$type][0]; } parent::setValue($value, $type, $this->_Locale); parent::setType($type); }
/** * Set a new type, and convert the value * * @param string $type New type to set * @throws Zend_Measure_Exception */ public function setType($type) { if (empty(self::$_UNITS[$type])) { throw new Zend_Measure_Exception("type ({$type}) is a unknown binary"); } // Convert to standard value $value = parent::getValue(); $value = call_user_func(Zend_Locale_Math::$mul, $value, self::$_UNITS[parent::getType()][0], 25); // Convert to expected value $value = call_user_func(Zend_Locale_Math::$div, $value, self::$_UNITS[$type][0]); parent::setValue($value, $type, $this->_Locale); parent::setType($type); }