我该怎么做?
$v1=105;
$v2=90;
if ($value=='subtraction'){
$operator='-';
}else{
$operator='+';
}
$new_value=$v1.$operator.$v2;
所以它应该返回105-90 = 15或105 + 90 = 195。但是如何将$ operator变量用作运算符?例如,这不起作用:
eval("$new_value=$v1".$operator."$v2");
感谢您的帮助!
答案 0 :(得分:5)
我建议不这样做,但要使用eval
,您必须这样做:
// You need to escape the $ in $new_value
eval("\$new_value = $v1 $operator $v2");
我建议改为做这样的事情(即:不要将变量用于运算符,只需进行计算):
$v1=105;
$v2=90;
if ($value=='subtraction'){
$new_value= $v1 - $v2;
}else{
$new_value= $v1 + $v2;
}
答案 1 :(得分:0)
另一个答案更好,但如果你真的想做一些棘手的事情,我认为你可以拥有一个变量保持一个函数(而不是一个运算符)。
//untested hypothetical example
$myOperation = function Add($num1, $num2){
return $num1+$num2;
}
在PHP中没有这样做,但我认为你可以 ......
答案 2 :(得分:0)
也许你可以改变这个:
<?php
$v1 = 105;
$v2 = 90;
if($value=='subtraction')
$v2 *= -1;
$new_value = $v1 + $v2;
?>
答案 3 :(得分:0)
为什么不让$运算符成为函数?
$v1 = 10;
$v2 = 20;
$substraction = function($a, $b) {
return $a - $b;
};
[...]
$someString = 'substraction';
echo $$someString($v1,$v2);