PHP основной оператор

Просто сталкивался с этой проблемой, не могли бы вы объяснить, как в итоге получился ответ 4?
Так просто пока я понятия не имею, как это случилось.

echo $a = 20%-8; //4

Ответ:

echo (5 % 3)."\n";           // prints 2
echo (5 % -3)."\n";          // prints 2
echo (-5 % 3)."\n";          // prints -2
echo (-5 % -3)."\n";         // prints -2

2

Решение

Вы пытаетесь получить по модулю отрицательное число. Там нет разницы между этим и: 20%8

Увидеть: https://math.stackexchange.com/questions/519845/modulo-of-a-negative-number

1

Другие решения

Оператор% оставит напоминание об операции. То есть $x % $y приведет к остатку $x деленное на $y,

Здесь, когда 20 делится на -8, это оставит напоминание 4, которое является ответом.

2

@bwaaaaaa,Модуль оператора выдаст напоминание об операции.

Suppose $x % $y, that means that Remainder of $x divided by $y.

Так что для вашего примера, когда 20, деленное на -8, даст вам напоминание 4, поэтому его вывод равен 4.

Для получения дополнительной информации. относительно оператора модуля, пожалуйста, посетите этот

1

Оператор остаток возвращает остаток, оставшийся, когда один операнд делится на второй операнд. помните, что результат оператора по модулю всегда будет принимать знак дивиденда, а не делителя. Он использует встроенную функцию по модулю для получения результата, который является целочисленным остатком от деления var1 на var2.

Итак, здесь в вашем коде var1 равен 20, что является положительным целым числом, а var2 равно -8, что является отрицательным целым числом. 20 — дивиденд, а -8 — делитель.

Итак, как мы знаем, результат оператора модуля будет принимать знак делимого, а не делитель. Поэтому ответ напоминания будет всего 4.
Надеюсь, так теперь понятно. благодарю вас

0
По вопросам рекламы [email protected]