php BCmath 封装类

php BCmath 封装类,第1张

概述<?php/***BCmath封装类*Calc::init(10)->add(1,2,3)->sub(1,2)->mul(4,5)->value(2);//(10+1+2+3-1-2)*4*5最后get保留2位小数*Calc::add(10,2)->div(2)->value(2);*amespaceApp\Helpers;/***@method\App\Helpers\Calcadd(num
<?PHP/** * BCmath 封装类 * Calc::init(10)->add(1,2,3)->sub(1,2)->mul(4, 5)->value(2); // (10+1+2+3-1-2)*4*5 最后 get 保留 2位小数 * Calc::add(10, 2)->div(2)->value(2); */namespace App\Helpers;/** * @method \App\Helpers\Calc add(number ...$value) 加法 * @method \App\Helpers\Calc sub(number ...$value) 减法 * @method \App\Helpers\Calc mul(number ...$value) 乘法 * @method \App\Helpers\Calc div(number ...$value) 除法 * @method \App\Helpers\Calc comp(number ...$value) 比较 * @method \App\Helpers\Calc mod(number ...$value) 取模 * @method \App\Helpers\Calc pow(number ...$value) 乘方 * @method \App\Helpers\Calc sqrt(number ...$value) 开方 */class Calc {    protected $init = 0;    protected $carry = [];    public function __construct($value = 0)    {        $this->init = $value;    }    public static function init($value = 0)    {        return new static($value);    }    public static function __callStatic($method, $args)    {        return self::init(array_shift($args))->$method(...$args);    }    public function __call($method, $args)    {        $this->carry[] = ['bc' . $method => $args];        return $this;    }    /**     * 获取值     * @param int $scale 保留小数位     * @return int     */    public function value($scale = 2)    {        foreach($this->carry as $item){            foreach($item as $func => $value){                $this->init = array_reduce($value, function($carry, $val) use($func, $scale){                    return $func($carry, $val, $scale);                }, $this->init);            }        }        return $this->init;    }}

 

总结

以上是内存溢出为你收集整理的php BCmath 封装类全部内容,希望文章能够帮你解决php BCmath 封装类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存