Intereting Posts

PHP использует строку как оператор

Скажем, у меня строка, $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; }