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