Вы пытаетесь обновить $ guess вместо $ good. Согласно вашему циклу, $ guess никогда не будет обновлено до true и всегда будет false. Итак, ваш цикл все равно продолжится.
Вам следует обновить $ good до false
, как только ваше условие будет выполнено, и это остановит цикл.
Еще одна вещь - вы должны использовать php Функция in_array () вместо сравнения переменной $ guess с 1 до 10.
Вы должны проверить так:
if (in_array($guess, [1,2,3,4,5,6,7,8,9,10])){
// your code here
}
или даже так:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// your code here
}
См. Код ниже:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// $guess = true;
$good = true; // you should update $good to true
}else{
echo "Invalid number. Please try again.\n";
// $guess == false; (you don't need this)
}