Zend_Measure_*
クラスは、
さまざまな計測を行うためのパッケージです。
汎用的で非常に簡単な方法を提供しています。
Zend_Measure_*
クラスを使用すると、
計測値の単位変換ができるようになります。
異なる単位どうしでの足し算や引き算、そして比較も可能です。
ユーザが自国語で入力した内容から、単位を自動的に抽出します。
多くの計測単位をサポートしています。
例 21.1. 計測値の変換
以下の簡単な例で、計測値の型の自動変換の様子を説明します。 計測値を変換するには、その値と型を知っている必要があります。 値としては、整数や浮動小数点数だけでなく数値文字列も使用できます。 変換は、同じ型 (重さ、面積、温度、速度など) の単位間でのみ行うことができます。 型が違う場合は変換できません。
<?php require_once 'Zend/Measure/Length.php'; $locale = new Zend_Locale('en'); $unit = new Zend_Measure_Length(100, Zend_Measure_Length::METER, $locale); // メートルをヤードに変換します echo $unit->convertTo(Zend_Measure_Length::YARD); ?>
Zend_Measure_*
は、さまざまな計測単位をサポートしています。
これらの単位は、すべて統一された記法で表され、
Zend_Measure_<TYPE>::NAME_OF_UNIT
のようになります。ここで <TYPE> はその単位の物理的あるいは数値的な特性を表します。
すべての計測単位は、変換用の係数と表示単位を含んでいます。
詳細は
計測値の型
を参照ください。
例 21.2. メートル
の計測
メートル
は長さの単位です。したがって、対応する定数は
Length
クラス内にあります。この単位を使用するには、
Length::METER
という記法を使用する必要があります。
表示単位は m
です。
<?php require_once 'Zend/Measure/Length.php'; echo Zend_Measure_Length::STANDARD; // 出力は 'Length::METER' となります echo Zend_Measure_Length::KILOMETER; // 出力は 'Length::KILOMETER' となります $unit = new Zend_Measure_Length(100,'METER'); echo $unit; // 出力は '100 m' となります ?>