似乎PHP manual regarding for
loops中的以下内容不正确。
他们的行为与C同行相似。
这是我对for
循环的理解
在C
for (i = foo; i < 10; i++) { /* body */ }
相当于
if ( i = foo )
{ while (i < 10)
{ /* body */
i++;
}
}
在PHP中可比较的循环
for ($i = $foo; $i < 10; $i++) { /* body */ }
变
$i = $foo;
while ($i < 10)
{ /* body */
$i++;
}
区别在于PHP $i = $foo
不是条件,而是语句的便利位置。假设我们将单个=
更改为==
。区别变得很重要。它是否正确?如果是这样,那么PHP和C循环表现不同,手册不正确,对吧?
答案 0 :(得分:13)
它们完全相同,但您对C的for
循环的理解是错误的。它们与PHP中的相同。
for (x; y; z) { /* body */ }
几乎就像
x;
while (y) {
/* body */
z;
}
虽然C中的for
和while
示例因范围和事物而不完全相同。
答案 1 :(得分:8)
不为真:
if ( i = foo ) //what??
{ while (i < 10)
{ /* body */
i++;
}
}
C for循环基本上是:
int i = foo;
while (i < 10)
{ /* body */
i++;
}
答案 2 :(得分:1)
自从我学习或花时间使用C已经有一段时间了,但我很确定C for循环中的第一个语句是将变量设置为值的表达式,就像它在C中一样。
答案 3 :(得分:0)
在C i=foo
确实是一个条件,它相当于(i=foo)!=0
,因为0
在{C}中是false
而不是 - 0
是{{1} }。
问题是C true
循环不能按照您的想法运行,可以通过for
初始化for循环来证明。