/ / Concaténation de chaînes vs tableau implosé en PHP - php, tableaux, chaînes

Concaténation de chaînes vs tableau implosé en PHP - php, tableaux, chaînes

Après avoir utilisé Java pendant longtemps, ma méthode standard pour créer de longues chaînes de caractères pièce par pièce consistait à ajouter les éléments à un tableau, puis à imploser le tableau.

$out[] = "a";
$out[] = "b";
echo implode("", $out);

Mais alors avec beaucoup de données.

L'alternative (PHP standard) consiste à utiliser la concaténation de chaînes.

$out = "a";
$out .= "b";
echo $out;

À ma grande surprise, il ne semble pas y avoir de différence de vitesse entre les deux méthodes. Lorsqu'il y a un décalage horaire important, c'est généralement la concaténation qui semble plus rapide, mais pas tout le temps.

Ma question est donc la suivante: existe-t-il - mis à part le style et la lisibilité du code - une autre raison de choisir une approche plutôt qu'une autre?

Réponses:

8 pour la réponse № 1

Pour moi, utiliser un tableau implique que vous allezfaire quelque chose qui ne peut pas être fait avec une simple concaténation de chaînes. Comme le tri, la vérification de l’originalité, etc. "Je ne connais pas le code. Ils ne" devront pas se demander si le tableau va être manipulé avant d’être implosé.

Cela dit, je prends l’approche du tableau implosé lorsque j’ai besoin de construire une chaîne avec des virgules ou des "et" entre les mots.


3 pour la réponse № 2

Choisissez celui qui est le plus lisible. Toujours. Dans ce cas, je prendrais la deuxième approche. Puis optimisez-le, si c’est un goulot d’étranglement.


3 pour la réponse № 3

Une différence (subtile) est clairement visible lors de la génération d'une chaîne séparée par un caractère:

<?php
$out[] = "a";
$out[] = "b";
echo implode(",", $out);

foreach($out as $o) {
echo $o . ",";
}

?>

Le premier imprimera a,b où ce dernier imprimera a,b,. Donc, à moins que vous n'utilisiez une chaîne vide comme séparateur, comme dans votre exemple, il est généralement préférable d'utiliser implode().


2 pour la réponse № 4

La guerre sainte concaténation vs implose de côté: Non, il n'y a pas de différence.


0 pour la réponse № 5

cela dépend de ce que vous voulez faire avec la chaîne / tableau et comment vous le créez

si vous commencez avec un tableau et que vous avez besoin de le trier / de manipuler certains éléments, alors je suggère d'imploser

autre que celui que j'utilise habituellement en concaténation