PHP Conference Japan 2024

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol设置符号值

描述

面向对象风格

public NumberFormatter::setSymbol(int $symbol, string $value): bool

过程化风格

numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool

设置与格式化程序关联的符号。格式化程序使用符号来表示数字中特殊的依赖于区域设置的字符,例如百分号。此 API 不支持基于规则的格式化程序。

参数

formatter

NumberFormatter 对象。

symbol

符号说明符,格式符号 常量之一。

value

符号的文本。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 numfmt_set_symbol() 示例

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo
"Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo
"Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

示例 #2 面向对象示例

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo
"Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo
"Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
?>

以上示例将输出

Sep: .
1.234.567,891
Sep: *
1*234*567,891

参见

添加注释

用户贡献的注释 1 条注释

8
vreemt+phpnet at gmail dot com
5 年前
这对于某些人来说可能显而易见,但 `setSymbol(NumberFormatter::CURRENCY_SYMBOL, '')` 对 `formatCurrency` 不起作用 - 它将被简单地忽略……

使用 `NumberFormatter::CURRENCY` 和 `$fmt->format(123);` 来获取以 `CURRENCY_SYMBOL` (或 `INTL_CURRENCY_SYMBOL`) 指定的符号的货币值。
To Top