PHP - 使用字符串作为运算符的算术运算

时间:2011-01-17 23:05:27

标签: php string math variables

我有一个字符串变量$operation,其值可以是+- 和两个整数变量$initial$unit

所以要回显它们之间算术运算的结果

我必须使用像

这样的东西
 if($operation == '+') echo ($initial + $unit);
 if($operation == '-') echo ($initial - $unit);

有没有一种方法可以在没有IF的情况下做到这一点?

4 个答案:

答案 0 :(得分:3)

您可以使用地图,即

function add($a, $b) { return $a + $b; }
function sub($a, $b) { return $a - $b; }

$operations = array('+' => 'add', '-' => 'sub');

$operations[$operation]($initial, $unit);

答案 1 :(得分:3)

数学技巧:

echo $initial + (($operation == '-') ? -1 : 1) * $unit;

仅使用加法,但作弊乘以负数......:)

答案 2 :(得分:1)

echo ($operation == '+') ? $initial + $unit : $initial - $unit;

答案 3 :(得分:0)

eval

但请确保在向eval提供任何内容之前进行白名单验证。

if(in_array($operation, array('+', '-'))){
    eval('echo $initial '.$operation.' $unit;');
}