2009-12-19 23 views

Respuesta

73

Es el operador modulus, como se mencionó, que devuelve el resto de una operación de división.

Ejemplos: 3%5 retornos 3, tal como 3 dividido por 5 es 0 con un resto de 3.

5 % 10 retornos 5, por la misma razón, 10 entra en 5 cero veces con un resto de 5.

10 % 5 devuelve 0, ya que 10 dividido por 5 va exactamente 2 veces sin resto.

En el ejemplo informados (3 - 2 + 7), se resuelve a 8, que le da 8 % 7, por lo que habrá $number1, que es el resto de 8/7.

+1

@zombat - 10% 5 es 0 como 10 dividido por 5 es 2 con un resto de 0. El módulo es el resto de la operación de división. –

+0

sí, estoy teniendo problemas graves de copiar/pegar aquí. Ya lo atrapé :) – zombat

+0

¡Muchas gracias por expresarlo en términos que entendí! – David

12

Es el operador modulus. En la declaración $a % $b el resultado es el resto cuando se divide por $a$b

17

Es la modulus operator:

$a % $b = El resto de $a dividido por $b.

A menudo se utiliza para obtener "un elemento por cada N elementos". Por ejemplo, sólo para obtener un elemento cada tres elementos:

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

que recibe esta salida:

0 
3 
6 
9 

(Sí, está bien, $i+=3 habría hecho el truco, pero esto fue sólo una demo .)

4

El uso de este operador se puede calcular fácilmente días pares o impares en el mes, por ejemplo, si es necesario para el horario o algo:

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

% significa módulo.

El módulo es el nombre elegante para "resto después de dividir" en matemáticas.

(numerator) mod (denominator) = (remainder) 

En PHP

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

En este caso, este script echo

6 is (13 mod 7). 

Dónde $r es para el resto (respuesta), $n para el numerador y $d para el denominador . El operador de módulo se usa comúnmente en public-key cryptography debido a su característica especial como one-way function.

3

Dado que muchas personas dicen "el módulo encuentra el resto del divisor", comencemos por definir exactamente qué es un resto.

En matemáticas, el resto es la cantidad "sobrante" después de realizando algunos cálculos. En aritmética, el resto es entero "sobrante" después de dividir un número por otro para producir un cociente entero (división de enteros).

Véase: "¿Cuánto del divisor queda después de dividir" http://en.wikipedia.org/wiki/Remainder

Así módulo es una forma sencilla de pedir,

Para utilizar el cálculo de la OP de (3 - 2 + 7) = 8 % 7 = 1:

Se puede dividir en:

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

7 puede entrar en 8 1 vez con 0,14 de 7 restos de

Eso es todo lo que hay que hacer. Espero que esto ayude a simplificar cómo funciona exactamente el módulo.


ejemplos adicionales usando diferentes divisores con 21.

Desglose de 21 % 3 = 0:

21/3 = 7.0 
3 * 0 = 0 

(3 puede entrar en 21 7 veces con 0 de 3 restos)

Desglose de 21 % 6 = 3:

21/6 = 3.5 
.5 * 6 = 3 

(6 puede entrar en 21 3 veces con 0,5 de 6 sobrante)

Desglose de 21 % 8 = 5:

21/8 = 2.625 
.625 * 8 = 5 

(8 puede entrar en 21 2 veces con 0.625 de 8 restos)

Cuestiones relacionadas