Позвольте мне начать с конца и актуальный вопрос:
Я пытаюсь написать PHP-скрипт, который из двух случайных чисел $x
и $y
будет выводиться и разрешаться только при модуляции == 0 (всегда должна отображаться действительная функция)
Что я имею в виду:
Скрипт эха:
4/2 => ХОРОШО!
Скрипт эха:
4/3 => ПЛОХО!
НИЧЕГО => ПЛОХО!
Я постараюсь провести вас через мои рассуждения, но будьте предупреждены:
Я новичок, поэтому: Я что-то изучаю, повышаю ставку и пытаюсь применить это удобно.
Сначала я генерирую случайные числа, просто:
$x = mt_rand(1,10);
$y = mt_rand(1,10);
Теперь я говорю, у меня есть две возможности после деления, остаток 0 или нет 0, так что выражение if () выглядит хорошей идеей, поэтому я делаю:
if ($ x% $ y == 0) {
эхо $ х. "/". $ У;
} еще {
echo "Остаток не равен 0";
}
Это работает как ожидалось за исключением, конечно, я всегда хочу сгенерировать этот остаток не 0 делений.
Таким образом, мой подход был следующий: почему бы не использовать пользовательские функции (никогда не использовал ранее, но мог бы пригодиться), поэтому, если я знаю, это прекрасно работает :
<?php
function hello(){
echo "Hello!";
}
hello();
?>
Почему бы не увеличить анте, как я уже говорил, и использовать его, поэтому я смешиваю:
<?php
$x = mt_rand(1,10);
$y = mt_rand(1,10);
function foo(){
if($x % $y == 0){
echo $x . "/" . $y;
}else{
foo();
}
}
?>
Не работает , я получаю пустой экран.
Что я ожидал от этого сценария:
- Создать функцию с оператором if ()
- Если остаток равен 0, отлично, эхо.
- иначе, начните все сначала, снова и снова, пока не получите разделение без остатка.
Это не работает.
Так что я в основном спрашиваю, что я делаю не так? Что не так с линией хотя бы позади этого?
Может ли это работать с небольшими изменениями?
Для опытных программистов я знаю, что вы все могли бы сделать скрипт, который делает это (но не имеет никакого отношения к моему), используя MS PAINT в качестве IDE, НО:
Меня не интересует сам код, поскольку он предназначен ТОЛЬКО для целей обучения.
Это не первый раз, когда это случается со мной, я продолжаю биться в стену бесконечными петлями ОЧЕНЬ часто, поэтому чем меньше изменение (и чем больше объяснение), тем лучше, и это будет очень высоко оценено.
Заранее спасибо!
Теперь, когда я закончил, я только что понял, что проблема может быть даже не в бесконечном цикле, даже если это еще не вопрос, что вы думаете о моем подходе? (конечно, я также отредактирую и уберу бесконечный цикл из вопроса)