来自手册:https ://www.php.net/manual/en/numberformatter.format.php
公共 NumberFormatter::format ( int|float $value , int $type = ? ) : 字符串
这段代码:
$a = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$string = $a->format(123, \NumberFormatter::TYPE_CURRENCY);
var_dump($string);
导致这个:
PHP Fatal error: Uncaught ValueError: NumberFormatter::format(): Argument #3 must be a NumberFormatter::TYPE_* constant
嗯?论据#3?没有参数#3(程序版本除外)!而这段代码(认为文档可能是错误的,之前没有人发现它):
$a = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$string = $a->format(123, 'USD', \NumberFormatter::TYPE_CURRENCY);
var_dump($string);
但它只是导致这个:
PHP Fatal error: Uncaught ArgumentCountError: NumberFormatter::format() expects at most 2 arguments, 3 given
好的... 那么你想要它怎么样,PHP?是3还是2?我在这一点上迷路了。
重要提示formatCurrency
:即使它绝对是货币数字,我也没有使用它的原因是(在实际代码中)我试图删除货币符号,但将其格式化为货币。formatCurrency
遗憾地忽略了setSymbol
,但format
尊重它。这就是format
在这种情况下使用的原因。因此,请不要告诉我使用formatCurrency
.