Che cosa significa esattamente?Che cosa significa il segno di percentuale in PHP?
$number = (3 - 2 + 7) % 7;
Che cosa significa esattamente?Che cosa significa il segno di percentuale in PHP?
$number = (3 - 2 + 7) % 7;
È l'operatore modulus, come indicato, che restituisce il resto di un'operazione di divisione.
Esempi: 3%5
restituisce 3, da 3 diviso per 5? 0 con resto di 3.
5 % 10
restituisce 5, per la stessa ragione, 10 va in 5 nullo volte con resto di 5.
10 % 5
restituisce 0, poiché 10 diviso per 5 va esattamente 2 volte senza resto.
Nell'esempio che hai postato, (3 - 2 + 7)
funziona a 8, dandovi 8 % 7
, così $number
sarà 1
, che è il resto del 8/7.
È l'operatore modulus. Nella dichiarazione $a % $b
il risultato è il resto quando $a
è diviso per $b
È il modulus operator:
$a % $b
= Resto di$a
diviso per$b
.
Viene spesso utilizzato per ottenere "un elemento ogni N elementi". Per esempio, per ottenere un solo elemento ogni tre elementi:
for ($i=0 ; $i<10 ; $i++) {
if ($i % 3 === 0) {
echo $i . '<br />';
}
}
che ottiene questa uscita:
0
3
6
9
(Sì, OK, $i+=3
avrebbe fatto il trucco, ma questo era solo un demo .)
uso di questo operatore si può facilmente calcolare giorni pari o dispari in mesi, ad esempio, se necessario, per orario o qualcosa:
<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
%
significa modulo.
Modulus è il nome di fantasia per "remainder after divide" in matematica.
(numerator) mod (denominator) = (remainder)
In PHP
<?php
$n = 13;
$d = 7
$r = "$n % $d";
echo "$r is ($n mod $d).";
?>
In questo caso, questo script eco
6 is (13 mod 7).
Dove $r
è per il resto (risposta), $n
per il numeratore e $d
per il denominatore . L'operatore modulo è comunemente utilizzato in public-key cryptography a causa della sua caratteristica speciale come one-way function.
Poiché così tante persone dicono "il modulo trova il resto del divisore", iniziamo definendo esattamente cosa è un resto.
In matematica, il resto è l'importo "rimasto" dopo eseguendo alcuni calcoli. In aritmetica, il resto è "left over" dopo aver diviso un intero con un altro per produrre un quoziente intero (divisione intero).
Vedere: "Quanto del divisore è rimasto dopo aver diviso" http://en.wikipedia.org/wiki/Remainder
Quindi modulo è un modo semplice di chiedere,
Per utilizzare calcolo del PO di (3 - 2 + 7) = 8 % 7 = 1
:
Può essere suddiviso in:
(3 - 2 + 7) = 8 8/7 = 1.143 #Rounded up .143 * 7 = 1.001 #Which results in an integer of 1
7 può andare in 8 1 volta con .14 7 avanzi
Questo è tutto quello che c'è da fare. Spero che questo aiuti a semplificare come funziona esattamente il modulo.
esempi aggiuntive utilizzando diversi divisori con 21.
Composizione della
21 % 3 = 0
:21/3 = 7.0 3 * 0 = 0
(3 può andare in 21 7 volte con 0 a 3 avanzi)
Composizione della
21 % 6 = 3
:21/6 = 3.5 .5 * 6 = 3
(6 può andare in 21 3 volte con 0,5 6 residuo)
Composizione della
21 % 8 = 5
:21/8 = 2.625 .625 * 8 = 5
(8 può andare in 21 2 volte con .625 dell'8 residuo)
@zombat - 10% 5 è 0 per 10 diviso 5 è 2 con un resto di 0. Modulus è la restante l'operazione di divisione. –
sì, sto riscontrando seri problemi di copia/incolla qui. L'ho già beccato :) – zombat
Grazie mille per averlo messo in termini che ho capito! – David