Foros del Web » Programando para Internet » PHP »

funcion

Estas en el tema de funcion en el foro de PHP en Foros del Web. como puedo crear una funcion que reciba 2 valores numericos y un operador (+-*/), devolvera el resultado de la operacion...
  #1 (permalink)  
Antiguo 18/12/2007, 12:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
funcion

como puedo crear una funcion que reciba 2 valores numericos y un operador (+-*/), devolvera el resultado de la operacion
  #2 (permalink)  
Antiguo 18/12/2007, 19:42
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: funcion

Mmm... para que enviar el operador cuando puedes hacerlo con un texto?...
Código PHP:
function calcula($valor1,$valor2,$operacion){
    switch(
$operacion){
        case 
"multiplica":
            return 
$valor1*$valor2;
            break;
        case 
"suma":
            return 
$valor1+$valor2;
            break;
        case 
"resta":
            return 
$valor1-$valor2;
            break;
        case 
"divide":
            return 
$valor1/$valor2;
            break;
    }
}

//asi llamas
echo '<br>Multiplicacion: '.calcula(2,2,"multiplica");
echo 
'<br>Division: '.calcula(2,2,"divide");
echo 
'<br>Adicion: '.calcula(2,2,"suma");
echo 
'<br>Sustraccion: '.calcula(2,2,"resta"); 
Suerte
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 18/12/2007, 20:08
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: funcion

Otra opción sería:

Código PHP:
function op($n1$n2$op) {
    
$ops = array('+','-','*','/');
    if(
in_array($op$ops)) eval("\$r = $n1 $op $n2;");
    else 
$r false;
    return 
$r;
}
 
//EJEMPLOS
 
$numero1 5;
$numero2 8;
 
echo 
"Número 1: $numero1<br />Número 2: $numero2 <br /><br />";
 
echo 
"Suma: " op($numero1$numero2"+") . "<br />";
echo 
"Resta: " op($numero1$numero2"-") . "<br />";
echo 
"Multiplicación: " op($numero1$numero2"*") . "<br />";
echo 
"Division: " op($numero1$numero2"/") . "<br />"
Imprime:
Código:
Número 1: 5
Número 2: 8 

Suma: 13
Resta: -3
Multiplicación: 40
Division: 0.625
No hay diferencia en cuanto a funcionalidad con la que te dio Marvin. Ambas dan exactamente el mismo resultado.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:05.