Inhaltsverzeichnis
Die Zend_Measure_*
Klassen bieten einen generischen und einfachen Weg um mit Maßeinheiten
zu Arbeiten. Durch Verwendung der Zend_Measure_*
Klassen können Maßeinheiten in verschiedene
andere Maßeinheiten des gleichen Typs konvertiert werden. Diese können Addiert, Subtrahiert und miteinander
verglichen werden. Von einer Eingabe in der Muttersprache eines Benutzers können die Einheiten der
Maßeinheiten automatische extrahiert werden. Eine Vielzahl an Maßeinheiten wird unterstützt.
Beispiel 21.1. Konvertieren von Maßeinheiten
Das folgende einführende Beispiel zeigt die automatische Konvertierung von Einheiten von Maßeinheiten. Um eine Maßeinheit zu konvertieren muß dessen Wert und Typ bekannt sein. Der Wert kann ein Integer, ein Float oder sogar eine Zeichenkette sein die eine Zahl enthält. Konvertierungen sind nur für Einheiten des gleichen Typs möglich (Masse, Fläche, Temperatur, Beschleunigung, usw.), nicht zwischen verschiedenen Typen.
<?php require_once 'Zend/Measure/Length.php'; $locale = new Zend_Locale('en'); $unit = new Zend_Measure_Length(100, Zend_Measure_Length::METER, $locale); // Konvertiert Meter zu Yard echo $unit->convertTo(Zend_Measure_Length::YARD); ?>
Zend_Measure_*
enthält Unterstützung für viele unterschiedliche Arten von Maßeinheiten. Die
Arten der Maßeinheiten haben die folgende einheitliche Schreibweise:
Zend_Measure_<TYP>::NAME_DER_EINHEIT
, wobei <TYP> identisch ist mit einer
bekannten physikalischen oder nummerischen Einheit. Jede Maßeinheit besteht aus einem Faktor für die
Konvertierung und einer Darstellungseinheit. Eine detailierte Liste kann im Kapitel
Arten von Maßeinheiten
gefunden werden.
Beispiel 21.2. Die Maßeinheit meter
Der meter
wird für das Abmessen von Längen verwendet und kann in der Klasse
Length
gefunden werden. Um auf diese Maßeinheit zu verweisen muß die Schreibweise
Length::METER
verwendet werden. Die Darstellungseinheit ist m
.
<?php require_once 'Zend/Measure/Length.php'; echo Zend_Measure_Length::STANDARD; // Ausgabe 'Length::METER' echo Zend_Measure_Length::KILOMETER; // Ausgabe 'Length::KILOMETER' $unit = new Zend_Measure_Length(100,'METER'); echo $unit; // Ausgabe '100 m' ?>