• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • NumberFormatter::setSymbol()

    numfmt_set_symbol

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

    Set a symbol value

    说明

    面向对象风格
    publicNumberFormatter::setSymbol(int $attr,string $value): bool
    过程化风格
    numfmt_set_symbol(NumberFormatter$fmt,int $attr,string $value): bool

    Set a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

    参数

    $fmt

    NumberFormatter object.

    $attr

    Symbol specifier, one of the format symbol constants.

    $value

    Text for the symbol.

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    范例

    numfmt_set_symbol() example

    <?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";
    ?>
    

    OO example

    <?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
    

    参见

    • numfmt_get_error_code() Get formatter's last error code
    • numfmt_get_symbol() Get a symbol value
    this could be obvious to some, but `setSymbol(NumberFormatter::CURRENCY_SYMBOL, '')` doesn't work for `formatCurrency` - it will simply be ignored...
    use `NumberFormatter::CURRENCY` and `$fmt->format(123);` to get a currency value with the symbol specified as `CURRENCY_SYMBOL` (or `INTL_CURRENCY_SYMBOL`)