Jump to content

[RESOLU] différence entre tools::ucfirst et ucfirst


Recommended Posts

Bonsoir,

Très bonne question à laquelle je ne saurais répondre car elles fonct exactement la mème chose.

J'ai regardé la fonction dans la classe tools et je ne vois pas ce qu'elle apporte de plus ?????

Link to comment
Share on other sites

La différence se situe dans le support de l'UTF-8. Un exemple rapide et concret ? Le caractère accentué "é" qui reste inchangé avec la fonction native du PHP et qui se transforme bien en "É" avec la fonction PrestaShop ;-)

Link to comment
Share on other sites

La différence se situe dans le support de l'UTF-8. Un exemple rapide et concret ? Le caractère accentué "é" qui reste inchangé avec la fonction native du PHP et qui se transforme bien en "É" avec la fonction PrestaShop ;-)

Merci :P

  • Like 1
Link to comment
Share on other sites

Bonjour,

J.Danse, tu es sur de ça ?

Car la fonction tools::ucfirst utilises : return Tools::strtoupper(Tools::substr($str, 0, 1)).Tools::substr($str, 1);

C'est à dire qu'elle utilise strtoupper pour mettre en majuscule.

Or la doc php dit :

Description

 

string strtoupper ( string $string )

strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

 

Et cela dit la même chose pour ucfirst. Donc normalement, dans les deux cas si la localisation est bonne cela doit retourner les bons caractères et non si elle n'est pas bonne.

Donc a priori les deux fonctions font la même chose.

Ou ai je tort ???

Link to comment
Share on other sites

Je suis d'autant plus sur qu'au-delà même de la lecture de la doc', j'ai simplement fait un test hier soir dans un PrestaShop pour test/développement.

 

Le test ?

ppp(ucfirst('test'));
ppp(Tools::ucfirst('test'));
ppp(ucfirst('é'));
ddd(Tools::ucfirst('é'));

 

J'ai bien eu ceci en retour:

Test

Test

é

É

 

;-)

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...