numfmt_create

funkcja

Tworzy obiekt NumberFormatter formatujący liczby i waluty zgodnie z locale (np. 'pl_PL' → '1 234,56 zł'). Wymaga rozszerzenia intl.

numfmt_create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

numfmt_create tworzy obiekt NumberFormatter, który następnie umożliwia formatowanie liczb i walut zgodnie z konwencjami danej lokalizacji. Dla 'pl_PL' separator tysięcy to spacja nierozdzielająca (U+00A0), separator dziesiętny to przecinek, a waluta to .

Stałe $style (wybrane):

| Stała | Opis | |---|---| | NumberFormatter::DECIMAL | liczba dziesiętna | | NumberFormatter::CURRENCY | kwota z symbolem waluty | | NumberFormatter::PERCENT | procent | | NumberFormatter::SPELLOUT | liczba słownie |

Funkcja zwraca null przy nieprawidłowym $locale. Wymaga rozszerzenia intl.

<?php
declare(strict_types=1);

// Formatter dziesiętny dla polskiej lokalizacji
$decimal = numfmt_create('pl_PL', NumberFormatter::DECIMAL);
echo numfmt_format($decimal, 1234.5);     // 1 234,5  (separator tysięcy to U+00A0 — twarda spacja, nie zwykła ' ')
echo numfmt_format($decimal, 1000000);    // 1 000 000

// Formatter walutowy
$currency = numfmt_create('pl_PL', NumberFormatter::CURRENCY);
echo numfmt_format_currency($currency, 1234.56, 'PLN'); // 1 234,56 zł

// Formatter procentowy
$percent = numfmt_create('pl_PL', NumberFormatter::PERCENT);
echo numfmt_format($percent, 0.1234); // 12%