在php中使用for循环时如何检查最后一个循环?

在php中使用for循环时如何检查最后一个循环?,php,for-loop,Php,For Loop,使用for循环php时如何检查最后一个循环 这是我的代码,但它不起作用 $x = "10"; for ($i = 0; $i < $x; $i++) { if ($i != '$x - 1') { echo "$i no last"; } else { echo "$i last"; } echo "<br/>"; } ?> 如何对最后一个循环进行代码检查?谢谢。试试这个,你会得到所需的输出 $x = "1

使用for循环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>";
}
$x=“10”;

对于($i=0;$i),PHP中除了字符串之外还有其他数据类型。您所做的是字符串的比较,而不是实际数字的比较

$x=“10”
不会将
$x
设置为
10
,而是设置为
“10”
,这是由一和零组成的字符串。这不一定是数值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>";
}

$i!='$x-1'
正在查看文本字符串$x-1。去掉表达式周围的单引号,如果愿意,用括号替换。来吧,至少解释一下您所做的更改,而不仅仅是“在这里”。删除
if()中的单引号
在答案中。另外,您删除了2个单引号。最后,您这样做了,因为?我没有注意到这一部分,我看到了其他部分并添加了条件,当我运行时,我注意到了这一点并删除了引号。+1尽管删除引号会完成此操作,因为PHP会将$x类型转换为10。只是一个旁注。;)当然。不过,迈克说得对不对。我不会回答一个基本上只是打字错误导致问题的问题。有足够多的人在做这项“工作”;)
<?php
$x = 10;
for($i=0; $i < $x; $i++)
{
    if($i != ($x - 1)) {
        echo $i."no last";
    } else {
        echo $i."last";
    }
    echo "<br>";
}