2011-10-25 9 views
5

Tengo la siguiente cadena.Operación numérica utilizando la cadena

$option = '+'; 
$value = '100'; 

Quiero crear un nuevo valor utilizando los parámetros anteriores.

por ejemplo: - $newValue = 222 + 100;

¿Cómo puedo hacerlo utilizando parámetros anteriores? de la siguiente manera

$newValue = 222 $option $value; 
+0

* (cima) * [ "The Clean Código Ta lks - Herencia, polimorfismo y pruebas "] (https://www.youtube.com/watch?v=4F72VULWFvc) – Gordon

Respuesta

4
<?php 

$option = '+'; 
$value = '100'; 

eval("\$newValue=" . 222 . $option . $value . ';'); 
var_dump($newValue); 
+8

¡Esta es una manera muy peligrosa! –

+1

Si llama a la función ** eval() **, asegúrese de tener en las variables ** $ opción ** y ** $ valor ** solo los operadores que desea admitir y los números. –

+0

Sí. Cierto. Pero ya sé operador. –

5
$oldValue = 222; 
switch ($option) { 
    case '+': 
    $newValue = $oldValue + $value; 
    break; 
} 
+0

y ¿dónde está' $ value' en tu código? – user973254

+1

'$ newValue = $ oldValue + $ value;' – Sebastian

4
switch($option){ 
case '+': 
    $newValue = 222 + $value; 
    break; 

} 


echo $newValue; 

creo que sirve

10
function operate($a, $b, $opt){ 
    switch ($opt) { 
     case '+': 
      $ret = $a + $b; 
      break; 
     case '-': 
      $ret = $a - $b; 
      break; 
     case '*': 
      $ret = $a * $b; 
      break; 
     case '/': 
      $ret = $a/$b; 
      break; 
     default: 
      throw new Exception('Unsupported operation!'); 
    } 
    return $ret; 
} 

Editar

$option = '+'; 
echo operate(222,100,$option); 
+2

esta es la razón por la que nuestra respuesta es mejor y mi respuesta es simplemente pereza :) y suponiendo que el usuario la obtenga :) Le he editado un poco cómo llamarla pero +1 por ello :) – Val

+1

Ojalá pudiera darte otro +1 por el 'throw new Exception' :) – Val

Cuestiones relacionadas