Скажите, у меня есть строка, $char. $char == "*".
$char. $char == "*".
У меня также есть две переменные, $ a и $ b, которые равны «4» и «5» соответственно.
Как мне получить результат $a $char $b, ie 4 * 5 ?
$a $char $b, ie 4 * 5 ?
Спасибо:)
Вы можете использовать eval() в соответствии с предложением @konforce, однако самый безопасный маршрут будет выглядеть примерно так:
eval()
$left = (int)$a; $right = (int)$b; $result = 0; switch($char){ case "*": $result = $left * $right; break; case "+"; $result = $left + $right; break; // etc }
Самый безопасный метод - это конструкция переключателя:
function my_operator($a, $b, $char) { switch($char) { case '=': return $a = $b; case '*': return $a * $b; case '+': return $a + $b; etc... } }
Самый простой, но самый опасный метод - использовать eval.
eval
$c = eval("return $a $char $b;");
Вы можете сделать с eval, однако я бы не советовал использовать eval.
Если есть оператор case, вы можете проверить, что оператор перед использованием
switch($char) { case '*': $result= $a * $b; break; case '+': $result= $a + $b; break; }
взгляните на функцию eval () . вам нужно будет собрать правильную команду php и запустить внутри eval (), чтобы извлечь результат.