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_symbolConfigure le symbole du formateur

Description

Style orienté objet

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

Style procédural

numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool

Configure le symbole du formateur. Le formateur utilise le symbole pour caractériser des nombres, comme le pourcentage. Cette API n'est pas supportée pour les formateurs à base de règles.

Liste de paramètres

formatter

L'objet NumberFormatter.

symbol

L'identifiant de symbole, parmi les constantes de symboles.

value

Le texte du symbole.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec numfmt_set_symbol(), Style procédural

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

Exemple #2 Exemple avec numfmt_set_symbol(), style POO

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

L'exemple ci-dessus va afficher :

Séparateur décimal : .
1.234.567,891
Séparateur décimal : *
1*234*567,891

Voir aussi

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