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

    numfmt_set_pattern

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

    Set formatter pattern

    说明

    面向对象风格
    publicNumberFormatter::setPattern(string $pattern): bool
    过程化风格
    numfmt_set_pattern(NumberFormatter$fmt,string $pattern): bool

    Set the pattern used by the formatter. Can not be used on a rule-based formatter.

    参数

    $fmt

    NumberFormatter object.

    $pattern

    Pattern in syntax described in » ICU DecimalFormat documentation.

    返回值

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

    范例

    numfmt_set_pattern() example

    <?php
    $fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
    echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
    echo numfmt_format($fmt, 1234567.891234567890000)."\n";
    numfmt_set_pattern($fmt, "#0.# kg");
    echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
    echo numfmt_format($fmt, 1234567.891234567890000)."\n";
    ?>
    

    OO example

    <?php
    $fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
    echo "Pattern: ".$fmt->getPattern()."\n";
    echo $fmt->format(1234567.891234567890000)."\n";
    $fmt->setPattern("#0.# kg");
    echo "Pattern: ".$fmt->getPattern()."\n";
    echo $fmt->format(1234567.891234567890000)."\n";
    ?>
    

    以上例程会输出:

    Pattern: #,##0.###
    1.234.567,891
    Pattern: #0.# kg
    1234567,9 kg
    

    参见

    • numfmt_get_error_code() Get formatter's last error code
    • numfmt_create() Create a number formatter
    • numfmt_get_pattern() Get formatter pattern
    setPattern appears to influence only the behavior of the format method, not the parse method of the NumberFormatter object. 
    $pattern = '#,##0';
    $frmtr = NumberFormatter::create('en-US', NumberFormatter::DECIMAL);
    $frmtr->setPattern($pattern);
    echo $frmtr->parse('12.345');
    // returns 12