有没有办法在PHP字符串内部计算表达式?
在Perl中,你可以通过创建对数组的引用然后立即解除引用来完成一个技巧。当Perl插入字符串时,它将计算数组引用中的表达式:
"string @{[2+2]} string"
它将评估字符串中的2 + 2。
PHP怎么样? PHP中是否有这样的构造允许您在字符串内部计算表达式(通过插值)?
答案 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;
}