PHP 8.5.0 Alpha 2 available for testing

NumberFormatter::setPattern

numfmt_set_pattern

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

NumberFormatter::setPattern -- numfmt_set_patternConfigura el patrón del formateador

Descripción

Estilo orientado a objetos

public NumberFormatter::setPattern(string $pattern): bool

Estilo procedimental

numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool

Configura el patrón utilizado por el formateador. No puede ser utilizado con un formateador basado en reglas.

Parámetros

formatter

El objeto NumberFormatter.

pattern

El patrón, en la sintaxis descrita en la » documentación ICU DecimalFormat.

Valores devueltos

Esta función retorna true en caso de éxito o false si ocurre un error.

Ejemplos

Ejemplo #1 Ejemplo con numfmt_set_pattern(), Estilo procedimental

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

Ejemplo #2 Ejemplo con numfmt_set_pattern(), estilo POO

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

El ejemplo anterior mostrará :

Patrón : #,##0.###
1.234.567,891
Patrón : #0.# kg
1234567,9 kg

Ver también

add a note

User Contributed Notes 2 notes

up
10
Crash
4 years ago
If you're looking for the pattern syntax, their documentation is here: http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns
up
-1
Anonymous
6 years ago
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
To Top