mb_ucfirst / mb_lcfirst în PHP

Face majusculă (mb_ucfirst) sau literă mică (mb_lcfirst) prima literă a unui text, inclusiv dacă este o diacritică.

Sintaxă
mb_ucfirst(string $string, ?string $encoding = null): string

Ce face mb_ucfirst / mb_lcfirst

ucfirst nu schimbă literele cu diacritice: „ștefan” rămâne „ștefan”. mb_ucfirst, apărută în PHP 8.4, transformă corect prima literă și lasă restul textului neschimbat.

mb_lcfirst face inversul: prima literă devine mică.

Parametri

Parametru Descriere
$string Textul transformat.
$encoding Opțional. Codarea textului.

Ce returnează

Textul nou.

Exemple

Exemplul 1: ucfirst comparat cu mb_ucfirst

<?php
echo ucfirst("ștefan") . "\n";
echo mb_ucfirst("ștefan") . "\n";
echo mb_lcfirst("ȘCOALA");

Rezultat

ștefan
Ștefan
șCOALA

Exemplul 2: Varianta pentru PHP mai vechi de 8.4

<?php
function prima_mare(string $text): string
{
    return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
}

echo prima_mare("țară frumoasă");

Rezultat

Țară frumoasă

Greșeli frecvente

  • Te aștepți ca restul literelor să devină mici. mb_ucfirst("ȘTEFAN") rămâne „ȘTEFAN”: aplică întâi mb_strtolower.

Comenzi înrudite

  • ucfirst / ucwords: Face prima literă a textului majusculă (ucfirst) sau prima literă a fiecărui cuvânt (ucwords).
  • mb_convert_case: Schimbă literele unui text în majuscule, litere mici sau „Prima Literă Mare” la fiecare cuvânt, cu diacritice.
  • mb_strtoupper / mb_strtolower: Transformă un text în majuscule (mb_strtoupper) sau litere mici (mb_strtolower), inclusiv literele cu diacritice.