◐ Shell
clean mode source ↗

PHP: BcMath\Number - Manual

Found A Problem?

harl at gmail dot com

1 year ago

BcMath\Number is one of those classes that overloads boolean casting.
If $z = new BcMath\Number(0) then $z is considered falsy (and hence, for example, empty($z)==true) even though it is a genuine Number object.

miken32 at gmail dot com

2 months ago

This class overloads many operators so you can do operations more naturally. But a big caveat is that the strict equality operator *does not work* as demonstrated with this code:

<?php
$sum = new BcMath\Number('23.93') + new BcMath\Number(17) - 6;
echo $sum;            // outputs 34.93

if ($sum < 99 && $sum > 34) {
    echo "foo";       // outputs foo
}

$comp = new BcMath\Number('34.93');
if ($sum === $comp) {
    echo "bar";       // outputs nothing!
}

if ($sum == $comp) {
    // yuck, don't do this
}

if ($sum->compare($comp) === 0) {
    echo "baz";       // outputs baz
}
?>