Php:如何评估字符串到运算符?

时间:2016-02-12 15:20:55

标签: php operators

我有3个变量:

$a = 5;
$b = 3
$o = "*";

$ o变量包含字符串值。该值也可以是“/”,“+”,“ - ”。

所以当我连接$ a。$ o。$ b:

$result = $a.$o.$b;

echo $result;

结果为5*3(字符串),而不是15

那么如何将运算符字符串转换为实数运算符?

5 个答案:

答案 0 :(得分:1)

你不能,你需要创建一个函数或switch语句来检查每个运算符。

Read this question and its answers所以你会明白怎么做。

答案 1 :(得分:1)

实际上你可以使用eval来做到这一点。但是建议使用eval会很痛苦,所以我只是给你一个链接到另一个问题的答案:calculate math expression from a string using eval

答案 2 :(得分:1)

您可以使用eval。例如:

eval('echo 5*3;')

将回显数字15。

答案 3 :(得分:1)

简单,简短并保存解决方案:

$a = 5;
$b = 3
$o = "*";

$simplecalc = function($a,$b,$op) {
 switch($op):
  case "*":
  return $a*$b;
 case "+":
  return $a+$b;
 case "-":
  return $a-$b;
 case "/";
  return $a/$b;
 default:
  return false;
 endswitch;
};

$result = $simplecalc($a,$b,$o);

答案 4 :(得分:1)

我相信这就是你要找的东西。

$wijzignaam = $_POST['wijzignaam'];
$xmlfile = file_get_contents('../xmlfile.xml');
$xml = new SimpleXMLElement($xmlstr);
$xpath = $xml->xpath('object/name["'.$wijzignaam.'"]');
print_r($xpath);

请注意,使用eval()非常危险,因为它允许执行任意PHP代码。