我有这个有效的PHP代码:
for ($i=0; $i < 5; $i++) {
do stuff to $class
echo "<i class=\"glyphicon glyphicon-star $class\"></i>";
}
不是在循环中使用echo
,而是如何将每次迭代附加到变量(比如$stars
),然后能够用
echo "$stars";
答案 0 :(得分:3)
创建一个变量来保存HTML。将HTML连接到此变量而不是回显它。
在循环之后,您可以回显该变量。
$stars = '';
for ($i=0; $i < 5; $i++) {
// do stuff to $class
$stars .= "<i class=\"glyphicon glyphicon-star $class\"></i>";
}
echo $stars;
答案 1 :(得分:1)
或者,您可以在不使用输出缓冲修改现有代码的情况下执行此操作。
// start a new output buffer
ob_start();
for ($i=0; $i < 5; $i++) {
//do stuff to $class
// results of these echo statements go to the buffer instead of immediately displaying
echo "<i class=\"glyphicon glyphicon-star $class\"></i>";
}
// get the buffer contents
$stars = ob_get_clean();
对于像这样的简单事情,我仍然会使用.=
连接,如其他答案所示,但仅限于FYI。