cjfulford/measurements-php

将度量标准化并提供函数以在抽象了单位的对象上使用数学

v2.2.0 2024-07-22 14:22 UTC

This package is auto-updated.

Last update: 2024-09-18 18:34:19 UTC


README

描述

measurements-php 库提供了处理度量的功能,尤其关注长度和面积计算。它提供了管理不同长度和面积单位的类,使得转换、算术运算和格式化变得简单。

安装

您可以通过 Composer 安装 measurements-php 库。在您的终端运行以下命令:

composer require cjfulford/measurements-php

用法

长度

长度单位

LengthUnit 类定义了各种长度单位,如千米、米、厘米、英寸、英尺、码和英里。

use Measurements\Length\LengthUnit;

$kilometer = new LengthUnit(LengthUnit::KILOMETRE);
$meter = new LengthUnit(LengthUnit::METRE);
// ...

长度运算

Length 类允许对长度执行运算,如加法、减法、乘法、除法、舍入和比较。还有一个 LengthImmutable 类,它提供相同的功能,但永远不会更新实例的内部值。

use Measurements\Length\Length;
use Measurements\Length\LengthUnit;

// Create length instances
$length1 = new Length(5, LengthUnit::METRE);
$length2 = new Length(3, LengthUnit::FOOT);

// Addition
$length = $length1->add($length2);

// Subtraction
$length = $length1->sub($length2);

// Multiplication
$length = $length1->mulByNumber(2);
$area = $length1->mulByLength($length2);

// Division
$length = $length1->divByNumber(2);
$number = $length1->divByLength($length2);

// Rounding
$result = $length1->round(LengthUnit::METRE, 2);

// Comparison
$isEqual = $length1->isEqualTo($length2);
$isGreaterThan = $length1->isGreaterThan($length2, false);
$isLessThan = $length1->isLessThan($length2, false);

// Formatting
$format = $length1->format(LengthUnit:INCH, 2, Format::ACRONYM)
$format = $length1->format(LengthUnit:FOOT, 2, Format::SYMBOL)
$format = $length1->format(LengthUnit:METRE, 2, Format::Name)

面积

面积单位

AreaUnit 类定义了各种面积单位,如平方米、平方千米、平方英寸、平方英尺等。

use Measurements\Area\AreaUnit;

$squareMeter = new AreaUnit(AreaUnit::SQUARE_METRE);
$squareKilometer = new AreaUnit(AreaUnit::SQUARE_KILOMETRE);
// ...

面积运算

Area 类允许对面积执行运算,如加法、减法、乘法、除法和比较。还有一个 AreaImmutable 类,它提供相同的功能,但永远不会更新实例的内部值。

use Measurements\Area\Area;
use Measurements\Area\AreaUnit;

// Create area instances
$area1 = new Area(100, AreaUnit::SQUARE_METRE);
$area2 = new Area(2, AreaUnit::SQUARE_KILOMETRE);

// Addition
$area = $area1->add($area2);

// Subtraction
$area = $area1->sub($area2);

// Multiplication
$area = $area1->mulByNumber(2);

// Division
$area = $area1->divByNumber(2);
$length = $area1->divByLength(new Length(10, LengthUnit::METRE));
$number = $area1->divByArea($area2);

// Comparison
$isEqual = $area1->isEqualTo($area2);
$isGreaterThan = $area1->isGreaterThan($area2, false);
$isLessThan = $area1->isLessThan($area2, false);

// Formatting
$format = $area1->format(AreaUnit:SQUARE_INCH, 2, Format::ACRONYM)
$format = $area1->format(AreaUnit:SQUARE_FOOT, 2, Format::SYMBOL)
$format = $area1->format(AreaUnit:SQUARE_METRE, 2, Format::Name)

贡献

欢迎贡献!请随时提出问题或提交拉取请求。

许可

此库使用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。

致谢

此库由 Cody Fulford 维护。

有关类、方法和属性的详细信息,请参阅源代码和文档。