如何在使用for循环php时检查最后一个循环?
这是我的代码,但它不起作用。
$x = "10";
for ($i = 0; $i < $x; $i++) {
if ($i != '$x - 1') {
echo "$i no last";
} else {
echo "$i last";
}
echo "<br/>";
}
?>
当我测试它的回声时
0 last
1 no last
2 no last
3 no last
4 no last
5 no last
6 no last
7 no last
8 no last
9 no last
如何让代码检查最后一个循环?谢谢。
答案 0 :(得分:4)
PHP中还有其他数据类型而不是字符串。你正在做的是比较字符串,而不是实际数字。
$x = "10";
不会将$x
设置为10
,而是设置为"10"
,这是由1和0构成的字符串。这不一定是数值10。
然后,您的比较将获取此字符串,并使用表达式'$x - 1'
将其与循环计数器变量进行比较。这是最重要的事情。 PHP不会替换单引号字符串中的变量。以下是比较示例:
$foo = 42;
echo '$foo Bar'; // Output: $foo Bar
echo "$foo Bar"; // Output: 42 Bar
所以,基本上你if
条件的作用是检查你的循环计数器是否不等于'$x - 1'
。比较字符串的工作方式与比较数字完全不同,在这种情况下,它根本不是你想要的。 (特别是因为PHP的等式(==
)和不等式运算符(!=
)有时会出现意外情况,如果您不熟悉类型的话。)
无意中,PHP会尝试尽可能地帮助您,这就是您的for
循环有效的原因。在那里你将数字与字符串进行比较。这没有意义,但PHP使它适合你。 ;)
只需将所有内容都用作数字值而不使用字符串表示法:
<?php
$x = 10;
for($i=0; $i < $x; $i++)
{
if($i != ($x - 1)) {
echo $i."no last";
} else {
echo $i."last";
}
echo "<br>";
}
答案 1 :(得分:0)
试试这个,你应该得到所需的输出
$x = "10";
for($i=0;$i<$x;$i++)
{
if($i!= $x - 1 ) {
echo $i."no last";
} else if($i == $x - 1) {
echo $i."last";
}
echo "<BR>";
}