StringBuilder for PHP

有人在PHP中做了一个StringBuilder实现?

你为什么要使用一个StringBuilder? PHP中的string是可变的。 因此,性能不是问题。

只要build立这样的string

 $string = "start"; $string .= "appended string"; $string .= "appended string"; etc. 

你可以使用sprintf这只是一个基本的版本,但不需要额外的库,例子Follow

 $String = "Firstname %s, lastname %s, Age %d"; echo sprintf($String,"Robert","Pitt",22); 

而且还处理types铸造和位置replace:

 $format = "The %2$s contains %1$d monkeys. That's a nice %2$s full of %1$d monkeys."; sprintf($format, $num, $location); 

虽然我喜欢雅各的回答:)

在这里看看他的function和姐妹function的伟大function: http : //php.net/manual/en/function.sprintf.php

有一些实现,但是我不明白为什么你需要在PHP中的StringBuilder,至less不是出于性能的原因。 PHP中的纯string连接比sprintf或雅各布build议的驱动程序更快。

你不需要StringBuilder或StringBuffer在PHP中,PHP是超级方便我提供给你,使用hereDoc和NowDoc如果你想保持PyString:

 $YourString = "start"; $YourString .= <<<'EOD' appended string Example of string spanning multiple lines using nowdoc syntax. EOD; $YourString .= <<<buffer appended string Example of string spanning multiple lines using heredoc syntax. appended string appended string buffer; 

@Amir的回答,给了我一个灵感,在PHP中,如果你想要'命名参数'或'位置'参数,你不需要sprintf ,但是HERE_DOC / NOW_DOC完美的工作。 你甚至 可以在类的内部使用属性和调用getter。

 class MyClass{ private $property; private $stock; // some other object with getter 'getSomeProperty()' function __toString(){ $localvar = 'Localvar'; $localvar2 = 'Localvar2'; return <<<HERE_DOC {{ fqsn: {$this->stock->getSomeProperty()}, property: {$this->property}, localvar: {$localvar}, localvar2: $localvar2 }} HERE_DOC; } // end __toString() } // end MyClass