Эффективный способ объединения строк в PHP - PullRequest
2 голосов
/ 06 декабря 2010

Во многих языках есть классы, которые делают конкатенацию последовательности строк намного быстрее.Например, в .Net есть StringBuilder, а в Java - StringBuffer.Есть ли такой класс в PHP, который позволяет эффективно объединять множество строк в одну строку?Или, может быть, в PHP есть встроенная функциональность, которая сделает его эффективным по умолчанию, если, например, я захочу сделать строку длиной 100 000 символов и построить ее, добавляя символы по одному символу за раз?*

Ответы [ 3 ]

6 голосов
/ 06 декабря 2010

Использование implode() (ваши строки должны быть в массиве) почти в 3 раза быстрее, чем использование оператора .=.

Редактировать: OKЯ торопил вещи.Это не так, не всегда в любом случае.Поведение не является линейным.

Я запускаю несколько тестов (100 итераций).

10.000 elements:

regular concat: 0.00069347143173218 sec
implode():      0.00050755023956299 sec (slightly faster)


100.000 elements: 

regular concat: 0.0088809585571289 sec
implode():      0.0054086112976074 sec (much faster)
2 голосов
/ 06 декабря 2010

В PHP такого нет.Если вы генерируете веб-страницу, рассмотрите возможность использования echo для вывода каждой переменной, а не для их объединения.Использование буфера вывода также может помочь.

0 голосов
/ 06 декабря 2010

Нет встроенной функциональности.

Используйте общие .=

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...