bradietilley/bcmath-number

Simulating the upcoming BCMath\Number class

v0.0.4 2024-05-12 00:00 UTC

This package is auto-updated.

Last update: 2024-12-15 14:55:31 UTC


README

A drop-in replacement for the upcoming BCMath\Number object type in PHP 8.4

Static Analysis Tests

Introduction

The BCMath\Number object type is not yet confirmed (RFC). It is also unclear about the exact implementation deatils so this package is not a perfect replica however I've aimed to achieve an exact alternative to BCMath\Number not necessarily as a backwards-compatible polyfill or shim but to be used as dependency before BCMath\Number is available.

This package is available as BradieTilley\BCMath\Number and, until PHP 8.4, BCMath\Number.

Installation

composer require bradietilley/bcmath-number

Documentation

Refer to the RFC for general usage examples. The gist of it is:

use BCMath\Number; // or use BradieTilley\BCMath\Number;

$number = new Number('34.465');
$result = $number->add('76.2');

echo (string) $result; // 110.665

// Number class is immutable so the original $number value remains. Resulting value are returned in a new object.
echo (string) $number; // 34.465

Author