TUTORIEL PHP 
Optimiser le traitement des chaînes
Trois conseils pour mieux gérer la manière dont une grosse application traite les chaînes de texte. (29/09/2004)

Les chaînes de caractères sont certainement les types de variables les plus utilisées au sein de PHP : affichage, traitement concaténation, analyse... Peu de scripts peuvent se targuer de ne pas au moins signaler à l'utilisateur ce qu'il fait.

De fait, de par eur usage intensif des chaînes, voici quelques conseils qui pourraient profiter aux scripts lourds ou en faisant fortement l'usage, afin d'améliorer leur performance.

1) Utiliser les apostrophes (') plutôt que les guillemets (") :

C'est l'une des règles de l'art de la gestion des chaînes, mais elle mérite d'être rappelée : il est plus rapide pour le serveur de traiter $nom='Xavier' que $nom="Xavier", simple parce que l'usage des guillemets lui indique qu'il doit convertir en sa valeur toute variable contenue par la chaîne. En revanche, l'encadrement d'une chaîne par deux apostrophes indique au serveur qu'elle est "brute", sans variable à traiter.
Ajoutons que lorsque la chaîne en question contient des balises HTML avec attributs, les guillemets de ces derniers deviennent plus faciles à gérer :
$chaine = <a href="bidule.php">bidule!</a>''
.

2) Utiliser des virgules avec echo : pour ceux préférant sortir les variables des chaînes plutôt que de les laisser traiter par l'encadrement de guillemets, il est préférable d'utilise les virgules de echo plutôt que de concaténer texte et variable.
Concatenation : echo 'Je m'appelle ' .$prenom. ' ' .$nom. '.';
Virgules : echo 'Je m'appelle ', $prenom, ' ', $nom, '.';
La raison est simple : la concaténation crée en mémoire une nouvelle chaîne, tandis que la virgule, une spécificité peu connue de echo, affichera simplement les valeurs les unes derrières les autres, évitant cette duplication en mémoire...

  Forum

Réagissez dans les forums de JDN Développeurs

3) Utiliser la syntaxe heredoc : cette syntaxe, en provenance du monde Perl, permet de définir des chaînes occupant plusieurs lignes. Elle se comporte avec la chaîne de la même manière que si elle était entourée de guillemets, mais ne nécessite pas d'échappement si la chaîne contient elle-même des guillemets :
$chaine = <<<HTML
Visitez notre site :
<a href="$url">$nom</a>
Entrée gratuite!
HTML;

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages