Solution :
Yes, this is absolutely possible by using the string-to-function-name technique (as mentioned in Overv’s answer). In many simple substitution cases, it reads more cleanly than alternatives like:
<input value='<?php echo 1 + 1 + foo() / bar(); ?>' />
Since the parser expects a variable ($), you can work around this with an identity transform function.
function identity($arg) {
return $arg;
}
$interpolate = "identity";
Now you can pass any valid PHP expression into $interpolate:
<input value='{$interpolate(1 + 1 + foo() / bar())}' />
✅ Upside:
Eliminates many trivial echo statements and unnecessary local variables.
Keeps inline expressions readable inside templates.
⚠️ Downside:
$interpolate will fall out of scope inside functions/methods, so you’d need to declare it global wherever you want to reuse it.