Что такое оператор 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;?>">&nbsp;</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('&lt;tr&gt;');

    echo('&lt;td&gt;'.$i.'&lt;/td&gt;');

    if ($i%3 == 2)
        echo('&lt;/tr&gt;');
}

% используется для остатка.

Пример:

Печать, если число четное или нечетное

  (@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;
Другие вопросы по тегам