Zend_Measure_* classes provide a generic and easy way for working
with measurements. Using
Zend_Measure_* classes, you can convert
measurements into different units of the same type. They can be added, subtracted and
compared against each other. From a given input made in the user's native language, the unit
of measurement can be automatically extracted. Numerous units of measurement are supported.
Example 589. Converting measurements
The following introductory example shows automatic conversion of units of measurement. To convert a measurement, its value and its type have to be known. The value can be an integer, a float, or even a string containing a number. Conversions are only possible for units of the same type (mass, area, temperature, velocity, etc.), not between types.
$locale = new Zend_Locale('en');
$unit = new Zend_Measure_Length(100, Zend_Measure_Length::METER, $locale);
// Convert meters to yards
Zend_Measure_* includes support for many different units of
measurement. The units of measurement all have a unified notation:
Zend_Measure_<TYPE>::NAME_OF_UNIT, where <TYPE>
corresponds to a well-known physical or numerical property. . Every unit of measurement
consists of a conversion factor and a display unit. A detailed list can be found in the
chapter Types of measurements.
Example 590. The meter measurement
The meter is used for measuring lengths, so its type constant can
be found in the
Length class. To refer to this unit of
measurement, the notation
Length::METER must be used. The display
unit is m.
echo Zend_Measure_Length::STANDARD; // outputs 'Length::METER'
echo Zend_Measure_Length::KILOMETER; // outputs 'Length::KILOMETER'
$unit = new Zend_Measure_Length(100,'METER');
// outputs '100 m'