İçeriğe geç

Döngüde dize birleştirme (ARCH7070)

Anahtar php.performance.string-concat-in-loop · Önem info · Kategori performance

Bir döngü içinde dizeye sürekli .= ile ekleme yapmak, her yinelemede dizeyi yeniden tahsis edebilir ve girdi büyüdükçe O(n^2) maliyete dönüşür. Parçaları biriktirip sonda birleştirin.

<?php
$out = '';
foreach ($rows as $row) {
$out .= $row . "\n";
}
echo $out;
<?php
$parts = [];
foreach ($rows as $row) {
$parts[] = $row;
}
echo implode("\n", $parts);

Parçaları bir diziye toplayın ve döngü bittikten sonra implode() ile tek seferde birleştirin.