Что такое оператор PHP% и как его использовать в реальных примерах?
Чем объясняется оператор PHP %
в деталях?
Включая примеры было бы неплохо!
8 ответов
Это оператор модуля, который дает целое число от деления, например
7 / 2 = 3.5 // 3 remainder 1
7 % 2 = 1 // the remainder
Очевидный пример из реального мира выясняет, является ли число нечетным или четным
если (($n % 2) == 0) число четное, иначе оно нечетное... полезно, если вы хотите показать альтернативные строки в таблице разными цветами
%
является оператором модуля.
Пример
$num1 = 160;
$num2 = 15;
$result = $num1 % $num2;
echo "The modulus of these numbers is $result";
Это оператор модуля. Это дает вам "остаток" после деления. Это довольно стандартный оператор.
Вот справочник по PHP для арифметических операторов.
К примеру, %
может использоваться для установки дополнительного класса CSS для каждого третьего элемента в HTML:
for ($i = 1; $i <= 30; $i++) {
$additionalCssClass = ($i % 3 == 0 ) ? ' last' : '';
?><div class="catalogItem<?php echo $additionalCssClass;?>"> </div><?
}
$length = 38;
$feet = floor($length / 12);
$inches = $length % 12;
echo 'This is '.$feet.' feet and '.$inches.' inches';
Отпечатки Это 3 фута и 2 дюйма
В качестве реальной проблемы я использую все это для генерации HTML, особенно таблиц:
//Rows
for ($i=0; $i<30; $i++) {
if ($i%3 == 0)
echo('<tr>');
echo('<td>'.$i.'</td>');
if ($i%3 == 2)
echo('</tr>');
}
%
используется для остатка.
Пример:
Печать, если число четное или нечетное
(@num % 2 == 0 )? 'even' : 'odd'
Это даст вам модуль, или "мод", из двух чисел, который является остатком, когда вы делите два числа. Это обычный арифметический оператор, и я не могу придумать язык, в котором его нет. Более подробная информация находится в эксплуатации по модулю.
Есть два способа, которыми вы можете использовать его. Наиболее распространенный, как и любой другой арифметический оператор:
$bwah = 3 % 1; // == 0
$bwah = 10 % 3; // == 1
Существует также краткий способ сделать это, так же, как +=
, -=
, *=
, а также /=
:
$bwah = 10;
$bwah %= 3; // == 1 ... it's like saying 10 % 3
Просто использование оператора% модуля:
if($nextImage == $ImagesTotal){
//reset counting
$nextImage = 0;
} else {
//increase counting
$nextImage++;
}
можно упростить до:
$nextImage = ++$nextImage % $ImagesTotal;
//$nextImage will allways be a value between 0 and $ImagesTotal;