【问题标题】:Converting a function in string format into calculation将字符串格式的函数转换为计算
【发布时间】:2021-04-08 14:58:11
【问题描述】:

我正在用 php 编程,我有以下变量:

$计算 = '15-12';

有没有可以将字符串转换成计算的函数?

【问题讨论】:

标签: php laravel string calculation


【解决方案1】:

是的,您可以在这种情况下使用eval 表达式,但不是recommended(@El_Vanja 提到)。最好将值转换为正确的类型并进行计算。

eval场景

$calculation = '15-12';
$result = eval('return '.$calculation.';');
print $result; // output will be 3

铸造类型

$calculation = '15-12';

$values = explode('-', $calculation);

$result = intval($values[0]) - intval($values[1]);

print $result;

【讨论】:

    【解决方案2】:

    eval() 函数可以在这里使用:

    $calculation = '15-12';
    $result = eval('return '.$calculation.';');
    
    echo $result; //outputs '3'
    

    【讨论】:

      【解决方案3】:

      你可以使用eval()https://www.php.net/manual/en/function.eval

      注意这个函数像PHP代码一样执行字符串,如果它包含特定的数学表达式,它将失败。在这种情况下,您需要自己解析字符串并进行计算或使用外部库。

      【讨论】:

        【解决方案4】:

        @aspirinemaga 的铸造解决方案是我会采用的方法。

        如果它并不总是减法(并且您想避免使用 eval()),那么您可以始终使用 strpos 来确定它是否是加法/减法/乘法,然后将表达式传递给获取计算结果的 switch 语句。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-07
          • 2022-09-21
          相关资源
          最近更新 更多