Kapitel 21. Zend_Measure

Inhaltsverzeichnis

21.1. Einführung
21.2. Erstellung einer Maßeinheit
21.2.1. Eine Maßeinheit von einer Integer oder Floatzahl erstellen
21.2.2. Erstellen einer Maßeinheit aus Zeichenketten
21.2.3. Maßeinheiten von lokalisierten Zeichenketten
21.3. Ausgabe von Maßeinheiten
21.3.1. Automatische Ausgabe
21.3.2. Ausgabe als Wert
21.3.3. Ausgabe mit einer Maßeinheit
21.3.4. Ausgabe als lokalisierte Zeichenkette
21.4. Manipulation von Maßeinheiten
21.4.1. Konvertieren
21.4.2. Addieren und Subtrahieren
21.4.3. Identität Vergleichen
21.4.4. Werte Vergleichen
21.4.5. Werte per Hand ändern
21.4.6. Typ per Hand ändern
21.5. Arten von Maßeinheiten
21.5.1. Hinweise für Zend_Measure_Binary
21.5.2. Hinweise für Zend_Measure_Number
21.5.3. Römische Zahlen

21.1. Einführung

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'
?>