php, бесконечный цикл в цикле while () - PullRequest
2 голосов
/ 19 сентября 2011
/// infinite loop??
$x=1; 
while($x=9){ 
echo $x;
$x++;
}

Я не понимаю причину, по которой приведенный выше код вызывает бесконечный цикл, на мой взгляд, приведенный выше код должен вывести «9» один раз.но он выдает бесконечные 999999999 ......

сначала (когда x равен 1), когда оператор ложен, поэтому ничего не происходит, затем x становится 2, но снова, когда оператор ложен;

Таким образом, когда x становится 9, а выражение истинно, поэтому должно появиться 9, тогда мы добавляем 1 из-за x ++;и оно становится равным 10, тогда как утверждение становится ложным, но, как я вижу, это не так, потому что

продолжает повторять 9999999 .......

Просьба просветить меня относительно приведенного выше кода.С наилучшими пожеланиями.

примечание: я проверил подобные вопросы, но не могу найти ответ для моей ситуации thx

Ответы [ 3 ]

10 голосов
/ 19 сентября 2011

$x=9 является назначением и всегда верно.Возможно, вы имели в виду $x==9 или какой-то другой оператор отношений.

3 голосов
/ 19 сентября 2011

Вы имеете в виду

$x == 9

Но в вашем примере это ничего не даст, потому что $ x! = 9. Вы, вероятно, имеете в виду

while($x < 9)
1 голос
/ 19 сентября 2011

Вы присваиваете значение 9 переменной x вместо реляционного сравнения. Распространенная ошибка. = - оператор присваивания, тогда как == - оператор сравнения на равенство.

http://en.wikipedia.org/wiki/Assignment_(computer_science)#Assignment_versus_equality

...