定义跨平台money_format函数(Linux和Windows)

Kar*_*rol 6 php formatting numbers number-formatting money-format

我已经读过money_format在Windows和某些Linux发行版(即BSD 4.11变体)上不可用.但我想使用普通函数编写跨平台库,如果可用,并在没有时使用此解决方法,因此我的库将能够在每个基于PHP的Web服务器上运行.

是否有任何简单的解决方案来检查内置功能是否可用以及是否包含上述解决方案?

Som*_*luk 11

仅当系统具有strfmon功能时才定义函数money_format().例如,Windows没有,因此在Windows中未定义money_format().

所以你可以使用这个PHP代码:

setlocale(LC_ALL, ''); // Locale will be different on each system.
$amount = 1000000.97;
$locale = localeconv();
echo $locale['currency_symbol'], number_format($amount, 2, $locale['decimal_point'], $locale['thousands_sep']);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以编写实际上可移植的代码,而不是依赖于操作系统功能.在PHP中使用money_format函数而不是扩展是非常愚蠢的.我不明白你为什么要在编程语言中的不同操作系统之间创建这样的不一致