Оценка выражений в строках PHP

Есть ли способ оценить выражение прямо внутри строки PHP?

В Perl вы можете сделать трюк с созданием ссылки на массив, а затем сразу же разыменовывать его. Когда Perl интерполирует строку, он вычисляет выражение внутри ссылки на массив:

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

и он будет оценивать 2 + 2 внутри строки.

Как насчет PHP. Есть ли в PHP такая конструкция, которая позволяет оценивать выражения внутри строки (через интерполяцию)?

0

Решение

$x = "string ".(2+2)." string";
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;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector