假设我有一个字符串,$char. $char == "*".
我还有两个变量 $a 和 $b,它们分别等于“4”和“5”。
我如何得到结果$a $char $b, ie 4 * 5 ?
谢谢 :)
假设我有一个字符串,$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
}
最安全的方法是 switch 构造:
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;
}
<?php
$a = 'alex';
$b = "alex";
$c = "==";
function abc($a,$b,$c){
$d = 'return ($a '.$c.' $b) ? true : false;';
return eval($d);
}
if(abc($a,$b,$c)){
echo "condition true";
}else{
echo "condition false";
}
// echo $e;
?>