循环don'的内部多重比较;不要破坏php代码。为什么?

循环don'的内部多重比较;不要破坏php代码。为什么?,php,for-loop,Php,For Loop,为什么这段代码在第二个for循环中显然是错误的(for($i==0;$icodefor($i==0;$i

为什么这段代码在第二个for循环中显然是错误的(
for($i==0;$icode
for($i==0;$i<$parts;$i++)
会运行,因为
$i==0
对循环没有影响

在正常的
for
循环第一个语句中,只设置
$i
或任何其他计数器的初始值。由于您先前已将
$i
设置为0,循环从
$i=0
运行,直到第二个语句
$i
部分不正确

更进一步,您甚至可以省略第一条语句:

$i = 0;
for (; $i < 3; $i++) {
    echo $i;
}
$i=0;
对于(;$i<3;$i++){
echo$i;
}

循环仍然会从
0
运行3次
2

为什么会出错?
$i==0
是一个输入错误。@u\u mulder是的,但它可以工作。为什么?因为
for
语法中的第一个表达式只用于初始化循环变量。
$i==0
当然不会这样做,但是您已经在函数的开头设置了
$i=0;
,因此执行此循环所需的一切都已就绪。值得一提的是,这三个表达式都可以省略-
for(;;)
是一个有效的循环。(当然,它可以无限运行,因此可能不是日常使用的东西。但根据某些条件,它仍然可以通过内部的
中断
)保留在某个点上。)我认为OP似乎对
for
循环的工作方式缺乏总体了解。
$i = 0;
for (; $i < 3; $i++) {
    echo $i;
}