TigerZF
🌐Español

Capítulo 47. Zend_Measure

47.1. Introducción

Las clases Zend_Measure_* proporcionan una forma genérica y sencilla de trabajar con medidas. Utilizando las clases Zend_Measure_*, puede convertir medidas a diferentes unidades del mismo tipo. Se pueden sumar, restar y comparar entre sí. A partir de una entrada dada en el idioma nativo del usuario, la unidad de medida se puede extraer automáticamente. Se admiten numerosas unidades de medida.

Ejemplo 47.1. Convirtiendo medidas

El siguiente ejemplo introductorio muestra la conversión automática de unidades de medida. Para convertir una medida, se deben conocer su valor y su tipo. El valor puede ser un entero, un flotante, o incluso una cadena que contenga un número. Las conversiones solo son posibles entre unidades del mismo tipo (masa, área, temperatura, velocidad, etc.), no entre tipos.

$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_* incluye soporte para muchas unidades de medida diferentes. Todas las unidades de medida tienen una notación unificada: Zend_Measure_<TYPE>::NAME_OF_UNIT, donde <TYPE> corresponde a una propiedad física o numérica conocida. Cada unidad de medida consta de un factor de conversión y una unidad de presentación. Puede encontrarse una lista detallada en el capítulo Tipos de medidas.

Ejemplo 47.2. La medida del metro

El metro se utiliza para medir longitudes, por lo que su constante de tipo se puede encontrar en la clase Length. Para referirse a esta unidad de medida, debe usarse la notación Length::METER. La unidad de presentación es m.

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'