php - 如何使用保存在变量中的运算符符号执行操作

标签 php

<分区>

伙计们,对于你们中的大多数人来说,这可能是一个简单的问题。但我对如何使用保存在变量中的运算符符号执行操作感到困惑。例子。

$first=5;
$second=5;
$operator="+";

$result=$first.$operator.$second;

echo $result;

但是 $result 只会打印 5+5。我想让它执行操作。

我的想法是将所有操作放在一个 if 条件下 -> if($operator == '+'){添加第一个和第二个操作数}。伙计们还有其他想法吗?

最佳答案

不使用 eval(),您可以尝试使用内部带有 switch() 的自定义函数:

$first = 5;
$second = 3;
$operator = '+';

$result = mathOp($operator, $first, $second);
echo $result;

function mathOp($operator, $n1, $n2){
    if(!is_numeric($n1) || !is_numeric($n2)){
        return 'Error: You must use numbers';
    }
    switch($operator){
        case '+':
            return($n1 + $n2);
        case '-':
            return($n1 - $n2);
        case '*':
            return($n1 * $n2);
        case '/':
            if($n2 == 0){
                return 'Error: Division by zero';
            }else{
                return($n1 / $n2);
            }
        default:
            return 'Unknown Operator detected';
    }
}

关于php - 如何使用保存在变量中的运算符符号执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433781/

相关文章:

php - 异常困惑

php - 如何在 Eloquent 中将 "or"与多个 "where"一起使用?

php - 检查 PHP 类完整性的方法

php - 我如何在 php 中使用 ajax 检索模式中的个人资料数据?

php - PHP 中 SQL 的安全测试数据

Php Mass/group 检查值

php - 如何将我拥有的 php 变量($total)传递给输入中的外部 Javascript?

php - CHAR 语义和 ORA-01461

javascript - PHP 登录算法不重定向到下一页(不确定是否连接到数据库)

php mysql group by sum问题