lumisys / bcmath_compat
bcmath 扩展的 PHP 5.x/7.x 兼容库
1.0.5.1
2020-06-05 18:19 UTC
Requires
- phpseclib/phpseclib: >=2.0.19
Requires (Dev)
- phpunit/phpunit: ^4.8.35|^5.7|^6.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- ext-gmp: Will enable faster math operations
Provides
- ext-bcmath: 7.3.5
README
bcmath 扩展的 PHP 5.x/7.x 兼容库
安装
使用 Composer
$ composer require phpseclib/bcmath_compat
在 Heroku 上的安装
bcmath_compat 在 Heroku 上以及 Composer < 2.0 的正常安装方式不适用,因为 Heroku 使用了修改过的 composer.json。Composer 2 将此问题解决。
鉴于上述情况,使用 Composer < 2.0 在 Heroku 上安装此库的方法如下
$ composer require phpseclib/bcmath_compat:1.0.4
限制
-
extension_loaded('bcmath')
bcmath_compat 不能使此函数返回 true。建议不这样做。
-
ini_set('bcmath.scale', ...)
您不能为未安装的扩展设置配置选项。如果您在一个未安装 bcmath 的系统上执行
ini_set('bcmath.scale', 5)
,则ini_get('bcmath.scale')
将返回false
。这类似于您执行ini_set('zzz', 5)
并然后执行ini_get('zzz')
时发生的情况。您会得到false
。对于执行
ini_set('bcmath.scale', ...)
的建议是执行bcscale(...)
。对于执行ini_get
的建议是(如果您使用的是 PHP >= 7.3.0),执行bcscale()
;或者(如果您使用的是 PHP < 7.3.0),执行max(0, strlen(bcadd('0', '0')) - 2)
。请注意,
ini_get
总是返回字符串,而建议的修复方法返回整数。