评估PHP字符串中的表达式

时间:2014-10-23 03:42:21

标签: php string evaluation

有没有办法在PHP字符串内部计算表达式?

在Perl中,你可以通过创建对数组的引用然后立即解除引用来完成一个技巧。当Perl插入字符串时,它将计算数组引用中的表达式:

"string @{[2+2]} string"

它将评估字符串中的2 + 2。

PHP怎么样? PHP中是否有这样的构造允许您在字符串内部计算表达式(通过插值)?

2 个答案:

答案 0 :(得分:0)

$x = "string ".(2+2)." string";

答案 1 :(得分:0)

寻找相同的,我做了以下,你甚至可以模拟perl语法:

    $s = 'testing to calculate @{[sin(2+2)]} and @{[round(cos(23*3),3)]}';
    $s = preg_replace_callback("[@{\[(.*?)\]\}]",'parseEval',$s);
    echo $s;
    //output: testing to calculate -0.75680249530793 and 0.993

    function parseEval($match) {
      //unsecure but still..
      eval('$ev = ' . $match[1] . ';');
      return $ev;
    }