mb_ucfirst
funkcja
Zamienia pierwszy znak ciągu na wielką literę, obsługując pełen zakres Unicode. Dostępna od PHP 8.4.
mb_ucfirst(string $string, ?string $encoding = null): string
mb_ucfirst zamienia pierwszy znak ciągu na jego wielką literę zgodnie z regułami Unicode. Jest wielobajtowym odpowiednikiem ucfirst(). Problem z ucfirst() polega na tym, że widzi tylko pierwszy bajt — dla polskich liter wielobajtowych (np. ą, ę, ó) zwróci po prostu niezmieniony ciąg lub uszkodzoną literę. mb_ucfirst działa poprawnie. Dostępna od PHP 8.4.
<?php
declare(strict_types=1);
echo mb_ucfirst('ążur', 'UTF-8'); // wynik: Ążur
echo mb_ucfirst('łódź', 'UTF-8'); // wynik: Łódź
echo mb_ucfirst('świat', 'UTF-8'); // wynik: Świat
// ucfirst() nie radzi sobie z polskimi literami:
echo ucfirst('ążur'); // wynik: ążur (pierwsza litera bez zmian!)
echo ucfirst('świat'); // wynik: świat (bez zmian — ś to 2 bajty)
Reszta ciągu pozostaje niezmieniona — mb_ucfirst modyfikuje wyłącznie pierwszy znak. Jeśli chcesz zamienić wszystkie litery na wielkie, użyj mb_strtoupper().