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