Après avoir utilisé Java depuis longtemps ma méthode standard pour créer de longues chaînes pièce par pièce consistait à ajouter les éléments à un tableau, puis implorez la matrice.
$out = 'a'; $out .= 'b'; echo $out;
6 Réponses :
Choisissez le plus lisible. Toujours. Ce cas, je ramasserais le deuxième apporach. Puis optimisez-le, si c'est un goulot d'étranglement. P>
Non, ce n'est pas un goulot d'étranglement, juste curieux. Quoi qu'il en soit, j'ai déjà mentionné la lisibilité.
Je ne peux que l'accepter cela - ne jamais faire quelque chose puisqu'un micro-repère montre qu'il est 0.0001% plus rapide. avec Xdebug ou Zenddebugger, il y a des profileurs pour PHP et si cela ne suffit pas, il existe des moyens de profiler également le temps d'exécution PHP, le temps passé de manière à utiliser de manière mieux utilisée que dans la maintien du code "optimisé" (et souvent, il est souvent moins cher de gérer encore plus de matériel que Payer le développeur)
+1 choisissez simplement le plus approprié. Si implore code> résout le problème avec élégance, utilisez-le.
Pour moi, utiliser un tableau implique que vous allez faire quelque chose qui ne peut pas être fait avec une simple concaténation à la chaîne. Comme le tri, vérifiant l'unicité, etc. Si vous ne faites rien de tel que cela, la concaténation de la chaîne sera plus facile à lire dans une année ou deux par une personne qui ne connaît pas le code. Ils n'auront pas à se demander si le tableau va être manipulé avant d'être imploré. P>
Cela dit, je prends l'approche de la matrice implorée lorsque je dois construire une chaîne avec des virgules ou "et" entre les mots " p>
une différence (subtile) est clairement visible lors de la génération d'une chaîne séparée de caractère: la première imprimera a, b code> où ce dernier imprimera
a, b, code>. Donc, à moins que vous utilisiez une chaîne vide en tant que sépérateur, comme vous l'avez fait dans votre exemple, il est généralement préférable d'utiliser
implorez () code>. P> p> p>
On pourrait faire: $ premier = vrai; foreach ($ en retard comme $ o) {if ($ premier) $ premier = faux; sinon echo ','; echo $ o; } Qui devrait vous donner un, B à la place.
@Raney: Pourquoi tout le problème lorsque implore () code> est plus facile?
La concaténation-vs-implorait la Guerre sainte de côté: Non, il n'y a pas de différence. P>
Cela dépend de ce que vous voulez faire avec la chaîne / la matrice et la manière dont vous la créez p>
Si vous commencez par un tableau et avez besoin de trier / manipuler certains éléments, alors je suggère d'imploser p>
autre que cela, j'utilise habituellement une concaténation p>
Voici un test de performance pour les deux approches: sortie avec PHP 7.1.33 sur MacOS: p> sortie avec PHP 8.0.5 sur A (lent) Debian: P> Time 1: 0.88076496124268
Time 2: 0.8109610080719
PHP n'est pas Java. Alors ne soyez pas surpris qu'ils diffèrent.
En PHP, les chaînes ne sont pas immuables ou même des objets.