Signatur
Beschreibung
mb_lcfirst() funktioniert analog zur eingebauten PHP-Funktion lcfirst(), ist jedoch multibyte-sicher und unterstützt damit korrekt Unicode-Zeichen wie Umlaute, kyrillische, griechische oder andere Nicht-ASCII-Buchstaben. Während lcfirst() lediglich das erste Byte des Strings betrachtet, verarbeitet mb_lcfirst() den ersten vollständigen Multibyte-Charakter korrekt.
Die Funktion ist besonders nützlich, wenn mit Strings gearbeitet wird, die in Sprachen wie Deutsch, Französisch, Russisch oder anderen Sprachen mit Sonderzeichen vorliegen. Nur der erste Buchstabe des Strings wird in einen Kleinbuchstaben umgewandelt; der Rest des Strings bleibt unverändert.
Der optionale Parameter $encoding gibt die Zeichenkodierung an. Wird er weggelassen oder auf null gesetzt, wird die interne Zeichenkodierung verwendet, die über mb_internal_encoding() gesetzt wurde. In der Regel ist das UTF-8.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | Der Eingabe-String, dessen erster Buchstabe in einen Kleinbuchstaben umgewandelt werden soll. | |
| $encoding | ?string | null | Die Zeichenkodierung, z. B. 'UTF-8'. Wird null übergeben oder der Parameter weggelassen, wird die interne Kodierung (siehe mb_internal_encoding()) verwendet. |
Rückgabewert
Beispiele
Einfaches Beispiel mit ASCII-Zeichen
<?php
$string = 'Hallo Welt';
echo mb_lcfirst($string);
// Ausgabe: hallo Welt
$string2 = 'PHP ist toll';
echo mb_lcfirst($string2);
// Ausgabe: pHP ist toll
Multibyte-Zeichen: Umlaute und Unicode
<?php
// Deutsch: Umlaut am Anfang
$string = 'Über den Wolken';
echo mb_lcfirst($string, 'UTF-8') . PHP_EOL;
// Ausgabe: über den Wolken
// Griechisches Zeichen
$greek = 'Ελλάδα';
echo mb_lcfirst($greek, 'UTF-8') . PHP_EOL;
// Ausgabe: ελλάδα
Vergleich mit lcfirst bei Umlauten
<?php
$string = 'Über den Wolken';
// lcfirst() ist nicht multibyte-sicher und liefert falsches Ergebnis
echo lcfirst($string) . PHP_EOL; // Falsch: Ü wird nicht korrekt behandelt
// mb_lcfirst() verarbeitet Umlaute korrekt
echo mb_lcfirst($string) . PHP_EOL; // Korrekt: über den Wolken
// Wichtig · Fallstricke
Neu in PHP 8.4.0: mb_lcfirst() wurde in PHP 8.4.0 eingeführt. Für ältere PHP-Versionen muss eine eigene Implementierung verwendet werden, z. B. mit mb_strtolower(mb_substr($string, 0, 1)) . mb_substr($string, 1).
Leere Strings werden ohne Fehler zurückgegeben. Strings, die nicht mit einem Buchstaben beginnen (z. B. Ziffern, Sonderzeichen oder Leerzeichen), werden unverändert zurückgegeben, da für diese Zeichen keine Kleinschreibung existiert.