PHP dizi implode vs String birleştirme

4 Cevap php

Parça uzun dizeleri bir parça oluşturmak için benim standart bir yöntem, bir diziye öğeler eklemek ve daha sonra dizi patlamaya Uzun bir süre için Java kullanılır olması.

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

Ama sonra çok veri ile.

(Standart PHP) alternatif dize birleştirme kullanmaktır.

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

Benim için sürpriz iki yöntem arasında hız farkı var gibi görünüyor. Önemli bir zaman farkı olduğunda genellikle daha hızlı görünüyor birleştirme, ama tüm zamanların.

Benim soru yani: var - dışında stil ve kod okunabilirliği gelen - diğer üzerinden bir yaklaşımı seçmek için başka nedenler?

4 Cevap

Benim için, bir dizi kullanarak basit dize birleştirme ile yapılamaz bir şey yapmak için gidiyoruz anlamına gelir. , Sıralama böyle bir şey yapmıyoruz vb Eğer teklik, kontrol gibi, o dize birleştirme kodu bilmeyen biri tarafından, bir veya iki yıl içinde okumak için daha kolay olacaktır. Onlar dizi patlamadan önce manipüle olacak merak zorunda kalmazsınız.

Ben virgül ile veya "ve" kelimeleri arasında bir dize oluşturmak gerektiğinde söyledi, ben Imploded dizi yaklaşım.

Bir karakter ayrılmış dize getirici bir adet (ince) fark açıkça görülebilir:

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

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

?>

İlki a,b burada ikincisi yazdırmak a,b, baskı olacaktır. Yani sizin örnekte, genellikle kullanmayı tercih ediyor ki gibi, bir ayraç olarak boş bir dize kullanarak sürece implode().

Kenara birleştirme-vs-implode kutsal savaş: Hayır, hiçbir fark yoktur.

bu dize / dizi ile ne yapmak istediğinize bağlıdır ve bunu oluşturmak nasıl

Eğer bir dizi ile başlar ve bazı öğeleri işlemek / sıralamak gerekirse, o zaman ben çöktüğünü göstermektedir

Bunun dışında ben genelde birleştirme kullanın