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

Bel*_*day 3 php

大家,这对你们大多数人来说都是一个简单的问题.但我很困惑如何使用保存在变量中的运算符符号执行操作.例.

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

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

echo $result;
Run Code Online (Sandbox Code Playgroud)

但$ result将只打印5 + 5.我希望它执行操作.

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

Ham*_*mZa 8

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';
    }
}
Run Code Online (Sandbox Code Playgroud)