我正在尝试在 PHP 中使用 money_format()
函数,但它给出了以下错误:
Fatal error: Call to undefined function money_format()
对这个错误的搜索表明函数 money_format()
仅在系统具有 strfmon
功能(例如,Windows 没有)时才定义,并且该函数已从 PHP 8.0 中删除。
是否有等效的 PHP 函数可用?
最佳答案
如果你有 Intl extension ,你可以使用
- NumberFormatter::formatCurrency — 根据格式化程序规则格式化货币值。
手册中的示例
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
输出
1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
另请参阅我关于如何将格式化货币字符串解析回 float 的回答:
关于php - money_format() 函数的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369887/