如何将运算符放入数组?

时间:2015-02-22 14:36:01

标签: php arrays

我想制作一个简单的程序来改变某些数字的运算符“+”,“ - ”,“*”,“/”。所以,我将运算符放在数组中,并尝试通过循环迭代它们。

$num1 = 10;
$num2 = 20;
$operators = array("+", "-", "*", "/");
for ($x=0;$x<=count($operators)-1;$x++){
echo $num1 . $operators[$x] .  $num2 . "</br>";
}

显示:

10+5
10-5
10*5
10/5

乍一看似乎没问题,但我需要计算数字,执行操作,简单地说,我需要最终结果数字,这给了我4个字符串。我理解这个的原因:我在$ operators数组中的值是字符串,而不是真正的运算符。我的问题是,如何将实数运算符放在数组中,或者,我可以将它们保存为数组中的字符串,但不知何故在输出中将它们转换为实数运算符?欢迎两种策略的解决方案。提前谢谢!

3 个答案:

答案 0 :(得分:0)

也许你可以尝试以下几行:

for ( $x=0; $x < count($operators); $x++ ){
    switch($operators[$x]){
        case '+':$answer=$num1+$num2;break;
        case'-':$answer=$num1-$num2;break;
        case '*':$answer=$num1*$num2;break;
        case'/':$answer=$num1/$num2;break;
    }
    echo $answer;
}

答案 1 :(得分:0)

你不能把真正的运算符放在数组中,因为它是语言结构。但你可以把这样的函数(我使用匿名函数,你可以使用命名)

$operations = array(
    '+' => function ($a, $b) { return $a + $b; }
);

foreach ($operations as $sign => $func) {
   echo '10'.$sign.'5 = '. $func(10, 5)."\n";
}

答案 2 :(得分:0)

你可以试试这个

$num1 = 10;
$num2 = 20;

$operators = array("+", "-", "*", "/");
for ($x=0;$x<=count($operators)-1;$x++){
    echo eval('return '.$num1 . $operators[$x] .  $num2 . ';')."</br>";
}