2024 PHP Conference Japan

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
"千分位符號: ".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
"千分位符號: ".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