bcmath 扩展在 phpEnv 中默认禁用,需手动编辑对应 PHP 版本的 php.ini 取消 extension=bcmath 前的分号,并重启服务验证;务必确认 php -v、php --ini 与 phpinfo() 中的版本及配置路径完全一致。

bcmath 扩展在 phpEnv 中默认不启用,必须手动开启才能使用 bcmul、bcadd 等高精度函数——否则调用时会报 Fatal error: Uncaught Error: Call to undefined function bcadd()。
确认 phpEnv 当前 PHP 版本和配置路径
phpEnv 是多版本共存环境,不同 PHP 版本的 php.ini 位置不同,不能统一修改。先确定你实际在用的版本:
- 打开终端,运行
php -v查看当前 CLI 使用的 PHP 版本(如8.1.28) - 运行
php --ini查看加载的php.ini路径,典型路径类似:C:\phpEnv\versions\8.1.28\php.ini - 若通过 Apache 运行,需额外检查
apache\conf\extra\php8.1.28.conf中是否指向了正确的php.ini
启用 bcmath 扩展的三步操作
phpEnv 的扩展位于 ext/ 目录下,启用只需改配置,无需编译或下载 DLL:
- 用记事本或 VS Code 打开对应版本的
php.ini - 搜索
;extension=bcmath(注意分号是注释符),去掉前面的分号,改为extension=bcmath - 保存文件,重启服务:如果是 Apache,在 phpEnv 控制面板中「停止」再「启动」对应版本;如果是 CLI,直接新开终端即可
验证是否生效:运行 php -m | findstr bcmath(Windows)或 php -m | grep bcmath(Linux/macOS),有输出即成功。
立即学习“PHP免费学习笔记(深入)”;
为什么不用 dll 或手动复制扩展文件
phpEnv 自带完整 ext\php_bcmath.dll(Windows)或 libphp_bcmath.so(Linux),且 php.ini 中的 extension_dir 已正确指向该目录。常见错误包括:
- 改错了其他版本的
php.ini(比如启用了 7.4 的配置,但实际运行的是 8.1) - 忘记重启 Apache,导致配置未重载
- 误删或误改
extension_dir路径,使 PHP 找不到php_bcmath.dll - 在 NTS(非线程安全)版本中启用了 ZTS 编译的扩展(phpEnv 默认提供 NTS 版本,无需额外处理)
最关键的细节是:phpEnv 每个 PHP 版本独立管理配置,切勿假设“改一个就全生效”。哪怕只跑一个项目,也要确认 phpinfo() 页面里显示的 Loaded Configuration File 和你编辑的 php.ini 完全一致。



















