Что именно это значит?
$number = ( 3 - 2 + 7 ) % 7;
Это, как уже упоминалось, оператор модуля , который возвращает оставшуюся часть операции деления.
Примеры: 3%5
возвращает 3, а 3 делится на 5 равно 0 с остатком 3.
5 % 10
возвращает 5, по той же причине 10 переходит в 5 нулевых времен с остатком 5.
10 % 5
возвращает 0, так как 10 делений на 5 идет ровно 2 раза без остатка.
В примере, который вы опубликовали, (3 - 2 + 7)
работает до 8, давая вам 8 % 7
, поэтому $number
будет равно 1
, что составляет 8/7.
Это оператор модуля :
$a % $b
= Остаток$a
деленный на$b
.
Он часто используется для получения «одного элемента каждые N элементов». Например, чтобы получить только один элемент из трех элементов:
for ($i=0 ; $i<10 ; $i++) { if ($i % 3 === 0) { echo $i . '<br />'; } }
Что получает этот вывод:
0 3 6 9
(Да, хорошо, $i+=3
сделал бы трюк, но это была просто демонстрация.)
Это оператор модуля . В выражении $a % $b
результатом является остаток, когда $a
делится на $b
Используя этот оператор, можно легко рассчитать нечетные или четные дни в месяце, например, если это необходимо для расписания или чего-то еще:
<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
Поскольку так много людей говорят, что «модуль находит оставшуюся часть дивизора», давайте начнем с определения того, что такое остаток.
В математике остаток – это сумма, «оставшаяся» после выполнения некоторых вычислений. В арифметике остаток – это целое число «слева» после деления одного целого на другое, чтобы получить целочисленное частное (целочисленное деление).
См .: http://en.wikipedia.org/wiki/Remainder
Таким образом, модуль – это простой способ спросить: «Сколько делителя осталось после деления?»
Чтобы использовать вычисление ОП (3 - 2 + 7) = 8 % 7 = 1
:
Его можно разбить на:
(3 - 2 + 7) = 8 8 / 7 = 1.143 #Rounded up .143 * 7 = 1.001 #Which results in an integer of 1
7 может войти в 8 1 раз с .14 из 7 оставшихся
Вот и все. Надеюсь, это поможет упростить работу модуля.
Дополнительные примеры с использованием разных делителей с 21.
Разбивка
21 % 3 = 0
:21 / 3 = 7.0 3 * 0 = 0
(3 могут перейти в 21 7 раз с 0 из 3 оставшихся)
Разбивка
21 % 6 = 3
:21 / 6 = 3.5 .5 * 6 = 3
(6 могут пойти в 21 3 раза с .5 из 6 оставшихся)
Распределение
21 % 8 = 5
:21 / 8 = 2.625 .625 * 8 = 5
(8 могут перейти в 21 2 раза с 0,625 из 8 оставшихся)
%
означает модуль.
Модуль – это причудливое название «остаток после деления» в математике.
(numerator) mod (denominator) = (remainder)
В PHP
<?php $n = 13; $d = 7 $r = "$n % $d"; echo "$r is ($n mod $d)."; ?>
В этом случае этот скрипт будет эхом
6 is (13 mod 7).
Где $r
для остатка (ответ), $n
для числителя и $d
для знаменателя. Оператор модуля обычно используется в криптографии с открытым ключом из-за его особой характеристики как односторонней функции .