如何向PHP的循环变量添加内容并检查结果?我有这个简单的代码:
<?php
for ($i=0; $i<5; $i++) {
echo "Time: " . $i + 1 . "<br/>";
}
?>
页面中显示的结果:
1
1
1
1
1
但如果没有添加1,结果是正确的。怎么做这个添加?
答案 0 :(得分:1)
更改此行:
echo "Time: " . $i + 1 . "<br/>";
到此:
echo "Time: " . ($i + 1) . "<br/>";
答案 1 :(得分:1)
将计算括在括号中:
<?php
for ($i=0; $i<5; $i++) {
echo "Time: " . ($i + 1) . "<br/>";
}
?>
答案 2 :(得分:1)
你在问题中连着使用这个:
<?php
for ($i=0; $i<5; $i++) {
echo "Time: " . ($i + 1) . "<br/>";
}
?>
答案 3 :(得分:1)
虽然添加括号以使添加具有更高的优先级是一个选项,但最简单的方法是将$i + 1
转换为表达式,将其解析为奇异值,然后将其传递给echo
,使用逗号:
for ($i=0; $i<5; $i++)
{
echo "Time: " , $i + 1 , "<br/>";
}
但最简单的方法是:
for ($i=0;$i<5;)//don't increment here
{
echo 'Time: ', ++$i, '<br/>';//increment here, and make sure to pre-increment
}
或者,更具可读性(因此恕我直言):
for($i=1;$i<6;$i++)
{//start with one, so you needn't increment in the loop body!
echo 'Time: ', $i, '<br/>';
}
放弃合作的速度略快,但你几乎不会注意到这一点。这只是一个选择。想想这两个选项(如果你熟悉C ++):
int i = 0;
std::stringstream toPrint;//create string-stream
toPrint << "Time: " << ++i << "<br/>";//pass substrings/int chunks to stream
std::COUT << toPrint.str();//create single string, and pass to output-stream
但这只是愚蠢的,考虑到你实际上是在创建一个流,只是为了将你的子串/ int传递给,只是将结果字符串传递给输出流。您也可以直接将所有块传递给输出流:
std::<COUT << "Time: " << ++i << "<br/>"; //pass string, int and string to output
将echo
视为一种语言构造(它是),它是STDOUT
流的访问点。手动连接一个字符串,你可以直接将它传递给流吗?没有任何开销?
作为助手,只需2行代码即可获得所需的输出,而无需(显式)循环和递增变量:
$vals = range(1,5);//create array 1, 2,3, 4, 5
//repeat format Time: %d<br/> for every index in $vals
vprintf(str_repeat('Time: %d <br/>', count($vals)), $vals);
//pass resulting format to vprintf, allong with the array of values
输出相同。如果你正在考虑使用它:不要。这只是为了好玩,以及如何将压缩代码放得太过分的一个例子
答案 4 :(得分:0)
<?php
for ($i=1; $i <= 5; $i++) {
echo "Time: " . ($i) . "<br />";
}
答案 5 :(得分:0)
你正在寻找这样的事情:
<?php
for ($i=0; $i<5; $i++) {
$j=$i+1;
echo "Time: " . $j . "<br/>";
}
?>
答案 6 :(得分:0)
就像DanFromGermany建议的那样,为什么不从$ i开始比现在高一个呢?
此外,如果你必须进行计算,var的含义通常与它的起点不同。因此,为了可读性和可重用性,请执行Munjal提出的建议,但忽略连接;
<?php
for ($i=0; $i<5; $i++) {
$laterTime = $i + 1;
echo "Time: {$laterTime} <br />\n";
}
?>
答案 7 :(得分:-1)
<?php
for ($i=0; $i<5; $i++) {
$i++;
echo "Time: ".$i. "<br/>";
}
?>
或者如果你坚持连接
<?php
for ($i=0; $i<5; $i++) {
echo "Time: " .++$i. "<br/>";
}
?>