web-dev-qa-db-ja.com

PHPでパーセント記号は何を意味しますか?

これはどういう意味ですか?

$number = ( 3 - 2 + 7 ) % 7;
40
Andrew

除算の残りを返すのは、前述の modulus 演算子です。

例: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、 そう $number1、これは8/7の残りです。

76
zombat

モジュラス演算子

$a % $b = $aの残りを$bで割った値。

「N要素ごとに1要素」を取得するためによく使用されます。たとえば、3つの要素ごとに1つの要素のみを取得するには:

for ($i=0 ; $i<10 ; $i++) {
    if ($i % 3 === 0) {
        echo $i . '<br />';
    }
}

これはこの出力を取得します:

0
3
6
9

(ええ、OK、$i+=3はトリックを行っていましたが、これは単なるデモでした。)

18
Pascal MARTIN

modulus 演算子です。ステートメント$a % $b結果は、$a$b

12
Dana the Sane

この演算子を使用すると、スケジュールなどで必要な場合、月の奇数日または偶数日を簡単に計算できます。

<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
4
kredo900

非常に多くの人々が「モジュラスは除数の残りを見つける」と言うので、残りが何であるかを正確に定義することから始めましょう。

数学では、残りは計算を実行した後の「残り」の量です。算術では、剰余は、整数を別の整数で除算して整数商(整数除算)を生成した後のinteger「残り」です。

参照: http://en.wikipedia.org/wiki/Remainder

モジュラスは、「除算後に除数がどれだけ残っているか」を尋ねる簡単な方法です。

OPの(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は残り7個のうち0.14個で8回1回になります

これですべてです。これがモジュラスの正確な機能を簡単にするのに役立つことを願っています.


21で異なる除数を使用する追加の例。

21 % 3 = 0の内訳:

21 / 3  = 7.0
3 * 0 = 0

(3は残り3つのうち0で7回21に入ることができる)

21 % 6 = 3の内訳:

21 / 6 = 3.5
.5 * 6 = 3

(6は残り6の.5で21に3回入ります)

21 % 8 = 5の内訳:

21 / 8 = 2.625
.625 * 8 = 5

(8は残り8個のうち0.625個で21に2回入ります)

3
fyrye

%はモジュラスを意味します。

モジュラスは、数学の「除算後の剰余」の派手な名前です。

(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は分母です。モジュラス演算子は、 一方向関数 としての特別な特性により、 公開鍵暗号 で一般的に使用されます。

2