Earlier quoted context omitted.
I don't know much about PHP, what's wrong with it regarding templating?
Automatic interpolation of variables into string literals is a bad idea IMHO. Couple that with variable hoisting (function scope) and hilarity can ensue when variables defined further down a function influence the value of another variable that looks like it just contains a string literal.
Or of course create_string("hello $1", name) or something like that.