Я только начал глубже изучать PHP для сертификации Zend PHP и нашел этот код, который действительно работает. Может ли кто-нибудь объяснить мне логику этого?
<?php
$num = 20% - 8;
echo $num; // 4






То, что вы видите, это оператор модуля, который, по сути, запрашивает «Какой остаток от деления 20 на -8».
Вы можете спросить, почему это не отрицательный 4? Из руководства,
The result of the modulo operator
%has the same sign as the dividend — that is, the result of$a % $bwill have the same sign as$a.
См. PHP: арифметические операторы для получения дополнительной документации.
% не процент, а модуль, ср. https://en.m.wikipedia.org/wiki/Modular_arithmetic
20 = 2 * 8 + 4, следовательно, 20 % 8 = 4
% не процент, а модуль, ср. en.m.wikipedia.org/wiki/Modular_arithmetic