首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将运算符放入数组?

如何将运算符放入数组?
EN

Stack Overflow用户
提问于 2015-02-22 22:36:01
回答 3查看 71关注 0票数 0

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

代码语言:javascript
复制
$num1 = 10;
$num2 = 20;
$operators = array("+", "-", "*", "/");
for ($x=0;$x<=count($operators)-1;$x++){
echo $num1 . $operators[$x] .  $num2 . "</br>";
}

它显示:

代码语言:javascript
复制
10+5
10-5
10*5
10/5

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

EN

回答 3

Stack Overflow用户

发布于 2015-02-22 23:07:18

也许你可以尝试一下下面的方法:

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2015-02-22 23:45:20

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

代码语言:javascript
复制
$operations = array(
    '+' => function ($a, $b) { return $a + $b; }
);

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

Stack Overflow用户

发布于 2015-02-23 00:13:04

你可以试试这个

代码语言:javascript
复制
$num1 = 10;
$num2 = 20;

$operators = array("+", "-", "*", "/");
for ($x=0;$x<=count($operators)-1;$x++){
    echo eval('return '.$num1 . $operators[$x] .  $num2 . ';')."</br>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28659023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档