Start · Sprachen · PHP · Referenz · locale_get_default

locale_get_default

Funktion

Gibt den aktuell gesetzten Standard-Locale-Wert aus der INTL-Konfiguration zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

locale_get_default(): string

Beschreibung

locale_get_default() liefert den aktuell gültigen Standard-Locale-Bezeichner als String zurück. Dieser Wert wird entweder aus der PHP-Konfigurationsdirektive intl.default_locale (in der php.ini) gelesen oder wurde zuvor zur Laufzeit über locale_set_default() gesetzt.

Der Rückgabewert entspricht einem IETF-Sprach-Tag (BCP 47), zum Beispiel de_DE, en_US oder fr_FR. Diese Locale-Bezeichner werden von sämtlichen Klassen und Funktionen der Intl-Erweiterung (z. B. Collator, NumberFormatter, DateFormatter) als Standardwert herangezogen, wenn kein expliziter Locale-Parameter übergeben wird.

Die Funktion ist der prozedurale Stil der Methode Locale::getDefault() aus der Locale-Klasse – beide sind funktional identisch. Sie eignet sich gut, um im Anwendungsstart zu prüfen, welches Locale aktiv ist, bevor formatierungsabhängige Ausgaben erfolgen.

Wurde in der Konfiguration kein Locale gesetzt und wurde locale_set_default() nie aufgerufen, gibt die Funktion in der Regel den systemseitigen ICU-Standardwert zurück (häufig en oder eine leere Zeichenkette, je nach Umgebung).

Rückgabewert

Typ
string
Beschreibung
Den aktuellen Standard-Locale-Bezeichner als IETF-Sprach-Tag (z. B. de_DE oder en_US). Ist kein Locale explizit gesetzt, wird der ICU-Standardwert zurückgegeben.

Beispiele

Standard-Locale auslesen

<?php
// Aktuelles Standard-Locale ausgeben
$locale = locale_get_default();
echo 'Aktuelles Standard-Locale: ' . $locale . PHP_EOL;
Aktuelles Standard-Locale: de_DE

Locale setzen und anschließend auslesen

<?php
// Locale auf Deutsch (Deutschland) setzen
locale_set_default('de_DE');

$locale = locale_get_default();
echo 'Gesetztes Locale: ' . $locale . PHP_EOL;

// Objektorientierter Stil (identisches Ergebnis)
$localeOO = Locale::getDefault();
echo 'OO-Stil: ' . $localeOO . PHP_EOL;

// NumberFormatter verwendet das Standard-Locale automatisch
$formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY);
echo $formatter->formatCurrency(1234.56, 'EUR') . PHP_EOL;
Gesetztes Locale: de_DE OO-Stil: de_DE 1.234,56 €

// Wichtig · Fallstricke

Konfiguration: Der Standardwert wird durch die INI-Direktive intl.default_locale in der php.ini gesteuert. Ist diese leer, nutzt die ICU-Bibliothek ein eigenes Systemstandard-Locale, was zu unerwarteten Ergebnissen führen kann. Es empfiehlt sich daher, das Locale zu Beginn jeder Anfrage explizit mit locale_set_default() zu setzen.

Unterschied zu setlocale(): locale_get_default() betrifft ausschließlich die Intl-Erweiterung und hat keinen Einfluss auf POSIX-Locale-Funktionen wie strftime() oder number_format(), die über setlocale() gesteuert werden.