Concaténation de String, lequel est le plus "rapide" ?

[Résolu]
Signaler
Messages postés
11
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
14 août 2007
-
Messages postés
11
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
14 août 2007
-
Bonjour à tous,

Partant du principe que dans une boucle concaténer des pseudo-String (PHP oblige) avec la bonne vieille methode du "." n'était pas l'idéal ni le plus optimisé, je me suis lancé dans la rédaction d'un objet StringBuilder a la manière de Java.

Malgré tout je manque d'infos pour savoir quel serait la méthode la plus rapide afin de concaténer des strings (Il faut rester dans l'objectif qu'il peut y avoir vraiment beaucoup de string  a concaténer)

En commencant à coder je suis tomber sur plusieurs solutions:
-Soit je stocke chaque string dans un tableau (je bénéficie donc de l'indexation du tableau), pour tout rassembler a la fin. (Cela peut poser des soucis d'optimisation de certaine methode tel que l'ajout d'un char pour une position dans la chaine globale, mais c'est une autre histoire)-Soit dans ma fonction de concaténation je fais comme suit: $string .$appendstring (Qui doit etre plus optimisé que: $string $string . $appendstring)
Mais du coup je me dit que faire une classe pour ca n'est pas forcément utile, sauf pour des question de pratique pour réutilisé l'objet plus tard.
-Soit j'utilise la methode str_pad, qui peut me donné des erreurs dans le cas du comptage de la longueur du string (avec les caractère spéciaux notamment)
-Soit il existe deja un buffer et je suis passé a coté
-Soit je laisse tombé

Enfin bref, vous avez compris globalement je pense. C'est quoi qui serait le mieux pour concaténer des strings?

2 réponses

Messages postés
365
Date d'inscription
samedi 26 juin 2004
Statut
Membre
Dernière intervention
17 avril 2008

Bonjour,
A mon avis mais je peux me tromper t'as deux solution :
$total = 'super '.'concatenation'.' Mon ami';
echo 'super ','concatenation',' Mon ami'; (la virgule marche qu'avec echo).

Ou si t'as un tableau avec plein de string a concatener regarde la function implode();

J'espere pas être à cote de la plaque.

_Marikou
Messages postés
11
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
14 août 2007

Re,
Je ne vais pas pouvoir utiliser les virgules car elle ne fonctionne que dans le cas ou l'on fait un echo (ou print pour ceux qui préfère), ma variable qui contiendra le string (ou autre objet) ne sera pas utilisé dans l'immédiat et pourra etre couplé avec une autre ultérieurement, d'ou mon envie de vouloir faire une sorte de Classe StringBuilder (ou StringBuffer).

Neanmoins, j'ai fait mon choix, et j'ai décidé d'opter pour un stockage dans un tableau. ;)
Je balancerais ma source une fois qu'elle sera terminé et que j'en serais a peu près satisfait :)
Merci d'avoir participé.

A plus.