Chapitre 21. Zend_Measure

Table des matières

21.1. Introduction
21.2. Création d'une mesure
21.2.1. Créer des mesures à partir de nombres entiers et décimaux
21.2.2. Créer des mesures à partir de chaînes de caractères
21.2.3. Mesures à partir de chaînes régionales
21.3. Récupérer des mesures
21.3.1. Récupération automatique
21.3.2. Récupération des valeurs
21.3.3. Récupération de l'unité de mesure
21.3.4. Récupération en tant que chaîne régionale
21.4. Manipuler des mesures
21.4.1. Convertir
21.4.2. Ajouter et soustraire
21.4.3. Vérifier l'égalité des mesures
21.4.4. Comparer les mesures
21.4.5. Changer manuellement des valeurs
21.4.6. Changer manuellement de type
21.5. Types of measurements
21.5.1. Conseils pour Zend_Measure_Binary
21.5.2. Conseils pour Zend_Measure_Number
21.5.3. Chiffres romains

21.1. Introduction

Les classes Zend_Measure_* fournissent un moyen générique et facile de travailler avec les mesures. En utilisant des classes de Zend_Measure_*, vous pouvez convertir des mesures en différentes unités du même type. Elles peuvent être ajoutées, soustraites et comparées les uns contre les autres. À partir d'une entrée donnée faite dans la langue maternelle de l'utilisateur, l'unité de la mesure peut être automatiquement extraite. Des unités de mesure supportées sont nombreuses.

Exemple 21.1. Convertir des mesures

L'exemple d'introduction suivant montre la conversion automatique des unités de mesure. Pour convertir une mesure, sa valeur et son type doivent être connus. La valeur peut être un nombre entier, un nombre à virgule flottante ("float"), ou même une chaîne contenant un nombre. Les conversions sont seulement possibles aux unités du même type (la masse, secteur, température, vitesse, etc.), pas entre les types.

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

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

// Converti les mètres en yards
echo $unit->convertTo(Zend_Measure_Length::YARD);
?>

Zend_Measure_* inclut le support de beaucoup de différentes unités de mesure. Toutes les unités de mesure ont une notation unifiée : Zend_Measure_<TYPE>::NAME_OF_UNIT, où <TYPE> correspond à une propriété physique ou numérique bien connue. Chaque unité de mesure se compose d'un facteur de conversion et d'une unité de visualisation. Une liste détaillée peut être trouvée dans le chapitre des types de mesures.

Exemple 21.2. La mesure meter ("mètre")

Le meter est utilisé pour mesurer des longueurs, ainsi son type constante peut être trouvé dans la classe des longueurs. Pour se rapporter à cette unité de mesure, la notation Length::METER doit être utilisée. L'unité de visualisation est m.

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

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

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