php - для цикла внутри цикла while, правильный синтаксис? - PullRequest
2 голосов
/ 13 марта 2012

У меня есть этот цикл

while (count($arr) < 7)
        {

            $string = 'xx';
            for ($i=0; strlen($string) < 4; $i++)
            {
                $string = $string.'1';
            }
            echo "<br>array length is less than 7, word $string is created.";
            $arr[] = $string;
        }

Каждый раз, когда я запускаю эту часть кода, мой локальный сервер xampp отключается и выдает ошибку «сервер не найден».

Я обнаружил, что если удалить внутренний цикл for, он будет работать нормально.Что-то не так с помещением цикла for в цикл while?

Кроме того, мой условный оператор strlen($string) < 4 в цикле for не имеет никакой ссылки на переменную $i,но я не вижу ничего нелогичного в том, чтобы иметь условное утверждение, не связанное со счетчиком.Я не прав, нужно ли какое-то сравнение со счетчиком?

TIA

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Ничего плохого в том, что какое-то время внутри.

Ваше "для" было бы лучше прояснить как

while(strlen($string) < 4) {
    $string = $string.'1';
}
0 голосов
/ 13 марта 2012

Я не вижу никаких проблем с вашим php.

Я точно скопировал ваш код, и бесконечного цикла вообще не было.

Результат, который я получил, был следующим:

<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.
<br>array length is less than 7, word xx11 is created.

Мое единственное предложение было бы изменить:

$string = $string.'1';

до

$string .= '1';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...