使用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
如何对最后一个循环进行代码检查?非常感谢。
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>";
}
试试这个,你应该得到所需的输出
$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>";
}