Этот код работает
<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>
Но если вместо "<=" я использую просто "=" php попадает в бесконечный цикл, который тайм-аут
<?php
for ($x = 0; $x = 10; $x++) {
echo "The number is: $x <br>";
}
?>
Это ожидаемое поведение?
0
user85063
5 Дек 2014 в 21:14
2 ответа
Да, это ожидаемо.
Вы должны использовать <= вместо = только
<= — это оператор сравнения: http://php.net/manual/en/ язык.операторы.comparison.php
= является оператором присваивания: http://php.net/manual/en/language .operators.assignment.php
0
Hamza
5 Дек 2014 в 21:18
Как насчет
– ==
, что действительно следует использовать OP, если они хотят увидеть, равно ли значение. Хотя я знаю, что это вообще не будет зацикливаться, потому что средняя часть цикла for никогда не будет истинной.
Jonathan Kuhn
5 Дек 2014 в 21:22
Спасибо за быстрый отзыв - в настоящее время я изучаю php и частично знал о сравнении/назначении, но почему он вообще не работает с == ? $x никогда не определялся раньше и определяется как 0 для начала здесь, так почему же он никогда не равен 10?
– user85063
5 Дек 2014 в 21:50
Только что понял - с == он работает, только если x равен 10, что не так - исходит из VBA, где логика цикла for будет FOR x = 0 TO 10 - это меня смутило. Спасибо еще раз
– user85063
5 Дек 2014 в 21:57
Да, вы используете оператор присваивания вместо оператора сравнения. Теперь нет никакого способа, чтобы этот цикл закончился.
2
John Conde
5 Дек 2014 в 21:15
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
=
для сравнения, а==
или===
. Но в этом случае ваш цикл вообще не запустится, так чего же вы пытаетесь достичь?