Что означает знак процента в PHP?
Что именно это означает?
$number = ( 3 - 2 + 7 ) % 7;
6 ответов
Как уже упоминалось, это оператор модуля, который возвращает остаток от операции деления.
Примеры: 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
для знаменателя. Оператор модуля обычно используется в криптографии с открытым ключом из-за его особой характеристики как односторонней функции.