# for

`for` 循环是 PHP 中最复杂的循环结构。第一个表达式在循环开始前无条件求值（并执行）一次。第二个表达式在每次循环开始前求值。如果值为 `true` ，则继续循环，执行嵌套的循环语句。如果值为 `false` ，则终止循环。第三个表达式在每次循环之后被求值（并执行）。

```php
<?php

for ($i = 1; $i < 10; $i++) {
    //
}

```

第二个表达式为空意味着将无限循环下去。

```php
<?php

for ($i = 1;; $i++) {
    if ($i > 10) {
        break;
    }
}

```

每个表达式都可以为空。

```php
<?php

$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    $i++;
}

```

每个表达式都可以包括逗号分隔的多个表达式。第二个表达式中，所有用逗号分隔的表达式都会计算，但只取最后一个结果。

```php
<?php

for ($i = 1, $j = 0; $j == 0, $i < 10; $j += $i, print $i, $i++) {
    //
}
// 123456789

```

由于数组的长度始终不变，可以用一个中间变量来储存数组长度以优化而不是不停调用 `count()` 。

```php
<?php

$foo = [2, 4, 5];
for ($i = 0, $count = count($foo); $i < $count; $i++) {
    $foo[$i] = mt_rand();
}

```

