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 res
The easiest but most dangerous method is to use eval
.
$c = eval("return $a $char $b;");
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
}
take a look at the eval() function. you will need to build a proper php command and run inside the eval() to extract out the result.
safest method is a switch construct:
function my_operator($a, $b, $char) {
switch($char) {
case '=': return $a = $b;
case '*': return $a * $b;
case '+': return $a + $b;
etc...
}
}
You can do with eval
however I would not suggest using eval
.
If there is case operator can by anything you should check what operator is before using
switch($char)
{
case '*':
$result= $a * $b;
break;
case '+':
$result= $a + $b;
break;
}