Глава 18. Zend_Measure
Пред. |  | След.

## Глава 18. Zend_Measure

## 18.1. Introduction

`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.

Пример 18.1. 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.

    <?php
    require_once 'Zend/Measure/Length.php';

    $locale = new Zend_Locale('en');
    $unit = new Zend_Measure_Length(100, Zend_Measure_Length::METER, $locale);

    // Convert meters to yards
    echo $unit->convertTo(Zend_Measure_Length::YARD);
    ?>

`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` .

Пример 18.2. 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`.

    <?php
    require_once 'Zend/Measure/Length.php';

    echo Zend_Measure_Length::STANDARD;  // outputs 'Length::METER'
    echo Zend_Measure_Length::KILOMETER; // outputs 'Length::KILOMETER'

    $unit = new Zend_Measure_Length(100,'METER');
    echo $unit;
    // outputs '100 m'
    ?>

Пред. |  | След.
17.14. Reading Mail Messages | Начало | 18.2. Creation of Measurements