web-dev-qa-db-fra.com

Que signifie le signe pourcentage en PHP?

Qu'est-ce que cela signifie exactement?

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

C'est l'opérateur module , comme mentionné, qui renvoie le reste d'une opération de division.

Exemples: 3%5 renvoie 3, car 3 divisé par 5 est égal à 0 avec un reste de 3.

5 % 10 renvoie 5, pour la même raison, 10 va dans 5 fois zéro avec un reste de 5.

10 % 5 renvoie 0, car 10 divisé par 5 va exactement 2 fois sans reste.

Dans l'exemple que vous avez publié, (3 - 2 + 7) équivaut à 8, vous donnant 8 % 7, donc $number sera 1, qui est le reste de 8/7.

76
zombat

C'est opérateur module :

$a % $b = Reste de $a divisé par $b.

Il est souvent utilisé pour obtenir "un élément tous les N éléments". Par exemple, pour obtenir un seul élément sur trois éléments:

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

Qui obtient cette sortie:

0
3
6
9

(Ouais, OK, $i+=3 aurait fait l'affaire; mais ce n'était qu'une démo.)

18
Pascal MARTIN

Il s'agit de l'opérateur module . Dans la déclaration $a % $b le résultat est le reste lorsque $a est divisé par $b

12
Dana the Sane

En utilisant cet opérateur, on peut facilement calculer les jours impairs ou pairs du mois par exemple, si nécessaire pour le calendrier ou quelque chose:

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

Puisque beaucoup de gens disent que "le module trouve le reste du diviseur", commençons par définir exactement ce qu'est un reste.

En mathématiques, le reste est le montant "restant" après avoir effectué un calcul. En arithmétique, le reste est l'entier "restant" après avoir divisé un entier par un autre pour produire un quotient entier (division entière).

Voir: http://en.wikipedia.org/wiki/Remainder

Le module est donc une manière simple de demander: "Quelle part du diviseur reste après la division?"

Pour utiliser le calcul de l'OP de (3 - 2 + 7) = 8 % 7 = 1:

Il peut être décomposé en:

(3 - 2 + 7) = 8
8 / 7 = 1.143 #Rounded up
.143 * 7 = 1.001 #Which results in an integer of 1

7 peut aller dans 8 1 fois avec 0,14 de 7 restants

C'est tout ce qu'on peut en dire. J'espère que cela aide à simplifier le fonctionnement exact du module.


Exemples supplémentaires utilisant différents diviseurs avec 21.

Panne de 21 % 3 = 0:

21 / 3  = 7.0
3 * 0 = 0

(3 peuvent aller dans 21 7 fois avec 0 de 3 restants)

Panne de 21 % 6 = 3:

21 / 6 = 3.5
.5 * 6 = 3

(6 peut aller dans 21 3 fois avec 0,5 de 6 restants)

Panne de 21 % 8 = 5:

21 / 8 = 2.625
.625 * 8 = 5

(8 peuvent aller dans 21 2 fois avec 0,625 sur 8 restants)

3
fyrye

% signifie module.

Module est le nom de fantaisie pour "reste après division" en mathématiques.

(numerator) mod (denominator) = (remainder)

En PHP

<?php
    $n = 13;
    $d = 7
    $r = "$n % $d";
    echo "$r is ($n mod $d).";
?>

Dans ce cas, ce script fera écho

6 is (13 mod 7).

$r est pour le reste (réponse), $n pour le numérateur et $d pour le dénominateur. L'opérateur de module est couramment utilisé dans cryptographie à clé publique en raison de sa caractéristique spéciale en tant que fonction unidirectionnelle .

2
php_coder_3809625