Скажем, у меня строка, $char. $char == "*".
$char. $char == "*".
У меня также есть две переменные: $ a и $ b, которые равны «4» и «5» соответственно.
Как получить результат $a $char $b, ie 4 * 5 ?
Благодаря 🙂
Вы можете использовать eval()
как было предложено @konforce, однако самым безопасным маршрутом было бы что-то вроде:
$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
.
$c = eval("return $a $char $b;");
взгляните на функцию eval () . вам нужно будет создать правильную команду php и запустить внутри eval (), чтобы извлечь результат.
Вы можете делать с eval
но я бы не предложил использовать eval
.
Если оператор случая может быть чем угодно, вы должны проверить, какой оператор перед использованием
switch($char) { case '*': $result= $a * $b; break; case '+': $result= $a + $b; break; }