C for循环与PHP for循环不同吗?

时间:2012-01-03 16:52:52

标签: php c for-loop

似乎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循环表现不同,手册不正确,对吧?

4 个答案:

答案 0 :(得分:13)

它们完全相同,但您对C的for循环的理解是错误的。它们与PHP中的相同。

 for (x; y; z) { /* body */ }

几乎就像

 x;

 while (y) {
     /* body */
     z;
 }

虽然C中的forwhile示例因范围和事物而不完全相同。

答案 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循环来证明。