重复字符串N次并声明为变量

问题描述 投票:0回答:5

如果我有一个像这样的简单代码:

$a = "hi";

for ($i = 0; $i < 3; $i++)
{
    echo $a;
}

所以输出将是

hihihi
,是否可以将其转换为诸如
$b="hihihi"
之类的字符串而不再通过循环? 我将它用于其他功能。

php string loops repeat
5个回答
4
投票

您可以使用

str_repeat($str, $count)
来实现此目的:

$str = str_repeat("hi", 3);
echo $str;

上面的代码将打印“hihihi”。

这是它的文档:http://www.php.net/manual/en/function.str-repeat.php


2
投票

我假设你的情况比给出的例子稍微复杂一些......

一种选择是不将变量回显到缓冲区。相反,将它们附加到您自己的变量中:

$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"

1
投票

有没有循环的选项:

$b = str_repeat('hi', 3); // hihihi

或者,如果你有一个数组:

$array = array ( 'hi', 'bye', '!!!' );
$b = implode('', $array); // hibye!!!

1
投票

您可以使用 str_repeat(string $input, int $multiplier).

$b = str_repeat($a, 3);

另请参阅我的示例


-3
投票
<?php
function stringdoubler($string, $duplicates) {
  if ($duplicates > 1)
    $string = $string . stringdoubler($string, $duplicates-1);
  return $string;
}

echo stringdoubler("hi",3);

?>
© www.soinside.com 2019 - 2024. All rights reserved.