Fel*_*len 9 php expression evaluate operator-keyword
说我有一个字符串, $char. $char == "*".
我还有两个变量,$ a和$ b,分别等于"4"和"5".
我如何得到结果 $a $char $b, ie 4 * 5 ?
谢谢 :)
Mik*_*wis 15
您可以eval()按照@konforce的建议使用,但最安全的路线是:
$left = (int)$a;
$right = (int)$b;
$result = 0;
switch($char){
case "*":
$result = $left * $right;
break;
case "+";
$result = $left + $right;
break;
// etc
}
Run Code Online (Sandbox Code Playgroud)
最安全的方法是一个开关构造:
function my_operator($a, $b, $char) {
switch($char) {
case '=': return $a = $b;
case '*': return $a * $b;
case '+': return $a + $b;
etc...
}
}
Run Code Online (Sandbox Code Playgroud)
最简单但最危险的方法是使用eval.
$c = eval("return $a $char $b;");
Run Code Online (Sandbox Code Playgroud)