PHP use string as operator

Fela Maslen picture Fela Maslen · Apr 25, 2011 · Viewed 14k times · Source

Say I have a string, $char. $char == "*".

I also have two variables, $a and $b, which equal "4" and "5" respectively.

How do I get the result of $a $char $b, ie 4 * 5 ?

Thanks :)

Answer

Mike Lewis picture Mike Lewis · Apr 25, 2011

You can use eval() as suggested by @konforce, however the safest route would be something like:

$left = (int)$a;
$right = (int)$b;
$result = 0;
switch($char){

  case "*":
    $result = $left * $right;
    break;

 case "+";
   $result = $left + $right;
   break;
// etc

}