Start · Sprachen · PHP · Referenz · mb_lcfirst

mb_lcfirst

Funktion

Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um, unter Berücksichtigung von Multibyte-Zeichensätzen.

seit PHP 8.4.0 Kategorie: string

Signatur

mb_lcfirst(string $string, ?string $encoding = null): string

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

Typ
string
Beschreibung
Gibt den String zurück, bei dem der erste Buchstabe in einen Kleinbuchstaben umgewandelt wurde. Alle übrigen Zeichen bleiben unverändert.

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
hallo Welt 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: ελλάδα
über den Wolken ελλάδα

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
Über den Wolken ü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.