如果我有这样一个简单的代码:
$a="hi";
for($i=0;$i<3;$i++)
{
echo $a;
}
因此输出将为hihihi
,是否可以将其转换为$b="hihihi"
之类的字符串而不再通过循环?
我正在将它用于其他功能...
感谢。
答案 0 :(得分:4)
您可以使用str_repeat($str, $count)
来实现此目标:
$str = str_repeat("hi", 3);
echo $str;
以上代码将打印“hihihi”。
以下是它的文档:http://www.php.net/manual/en/function.str-repeat.php
答案 1 :(得分:2)
我会假设你的情况比给出的例子稍微复杂一点......
一种选择是不将变量回显到缓冲区。相反,将它们附加到您自己的变量:
$out = '';
for ($i = 0; $i < 3; ++$i) {
$out .= 'hi';
}
echo $out; // "hihihi"
但是,如果由于某种原因,您可以控制的代码中没有发生回声,则可以使用output buffering。
ob_start();
for ($i = 0; $i < 3; ++$i) {
doSomethingWhichPrintsHi();
}
$out = ob_get_clean(); // "hihihi"
答案 2 :(得分:1)
有没有循环的选项:
$b = str_repeat('hi', 3); // hihihi
或者,如果你有一个数组:
$array = array ( 'hi', 'bye', '!!!' );
$b = implode('', $array); // hibye!!!
答案 3 :(得分:1)
答案 4 :(得分:-3)
<?php
function stringdoubler($string, $duplicates) {
if ($duplicates > 1)
$string = $string . stringdoubler($string, $duplicates-1);
return $string;
}
echo stringdoubler("hi",3);
?>