Comunidad de diseño web y desarrollo en internet online

Operador en variable

Citar            
MensajeEscrito el 09 Jul 2014 05:12 pm
Buenas tardes estoy intentando pasar un operador aritmético en una variable, por ejemplo:

Código PHP :

<?php 
$operadores = array('+','-','*','/',); 
$total = count($operadores) -1;  
$n = rand(0, $total);  
$operador = $operadores[$n]; 

$v1 = 2; 
$v2 = 3; 

echo $v1.$operador.$v2; 
?>

Lo que quiero es que imprima el resultado, pero me imprime el signo(operador)

Es para generar operaciones matemáticas de forma aleatoria

He estado mirando por todos sitios y creo que no es posible.
Si alguien me puede ayudar.

Por josebaillo

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Jul 2014 06:16 pm

Código PHP :

$operadores = array('+','-','*','/',); 
$total = count($operadores) -1;  
$n = rand(0, $total);  
$operador = $operadores[$n]; 

$v1 = 2; 
$v2 = 3; 

switch( $operador ){
   case '+':
      $result = $v1 + $v2;
      break;
   case '-':
      $result = $v1 - $v2;
      break;
   case '*':
      $result = $v1 * $v2;
      break;
   case '/':
      $result = $v1 / $v2;
      break;
}

echo $v1.$operador.$v2.' = '.$result; 

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 09 Jul 2014 06:25 pm
Esto es algo enfermo con POO, despues de aventarme unos buenos churros.

Código PHP :

<?php
/**
 * Created by PhpStorm.
 * User: Porfirio
 * Date: 9/07/14
 * Time: 12:40 PM
 */

abstract class Operadores
{
    public static function sumar($valA, $valB){
        return $valA + $valB;
    }

    public static function restar($valA, $valB){
        return $valA - $valB;
    }

    public static function multiplicar($valA, $valB){
        return $valA * $valB;
    }

    public static function dividir($valA, $valB){
        return $valA / $valB;
    }
}

class OperacionAleatoria extends Operadores{
    public $valorA = 0;
    public $valorB = 0;

    public function seleccionarOperacion($numero){
        switch($numero){
            case 1:
                return Operadores::sumar($this->valorA, $this->valorB);
                break;
            case 2:
                return Operadores::restar($this->valorA, $this->valorB);
                break;
            case 3:
                return Operadores::multiplicar($this->valorA, $this->valorB);
                break;
            case 4:
                return Operadores::dividir($this->valorA, $this->valorB);
                break;
        }
    }

    public function operar(){
        $total = count(get_class_methods("Operadores"));
        $aleatorio = rand(0, $total);

        return $this->seleccionarOperacion($aleatorio);
    }
}

$oOperacion = new OperacionAleatoria();

$oOperacion->valorA = 10;
$oOperacion->valorB = 20;

echo $oOperacion->operar();

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 10 Jul 2014 12:35 pm
Pues por increíble que parezca, es más sencillo:

Código PHP :

<?php
$operadores = array('+','-','*','/',); 
$total = count($operadores) -1;  
$n = rand(0, $total);  
$operador = $operadores[$n]; 

$v1 = 2; 
$v2 = 3; 

eval('$res = '.$v1.$operador.$v2.';');

echo $res;
?>

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 10 Jul 2014 02:52 pm
:shock: :alabado: :alabado: :alabado:

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 10 Jul 2014 03:03 pm
eval es prohibido !! :O

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 11 Jul 2014 12:25 pm
elporfirio:
Dice quién? ;)

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.