CakeFest 2024: The Official CakePHP Conference

NumberFormatter::setSymbol

numfmt_set_symbol

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

NumberFormatter::setSymbol -- numfmt_set_symbolEstablecer un valor de símbolo

Descripción

Estilo orientado a objetos

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

Estilo por procedimientos

numfmt_set_symbol(NumberFormatter $fmt, int $attr, string $value): bool

Establece un símbolo asociado con el formateador. Los formateadores utilizan símbolos para representar los caracteres especiales dependientes de la configuración regional en un número, por ejemplo el signo de porcentaje. Esta API no está soportada por formateadores basados en reglas.

Parámetros

fmt

Un objeto de la clase NumberFormatter.

attr

El especificador del símbolo, una de las constantes de símbolo de formato.

value

El texto para el símbolo.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de numfmt_set_symbol()

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo
"Separador: ".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
"Separador: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Ejemplo #2 OO example

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

El resultado del ejemplo sería:

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

Ver también

add a note

User Contributed Notes 1 note

up
8
vreemt+phpnet at gmail dot com
4 years ago
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`)
To Top