Como interpolar manualmente uma string? [duplicado]

Esta pergunta já tem uma resposta aqui:

Como substituir variável em string com valor em php? 10 respostas

A única maneira que encontrei de interpolar uma string (por exemplo, expandir as variáveis dentro dela) é a seguinte:

$str = 'This is a $a';
$a = 'test';
echo eval('return "' . $str . '";');

Lembre-se de que, em um cenário da vida real, as strings são criadas em lugares diferentes, então não posso simplesmente substituir's com"s.

Existe uma maneira melhor de expandir uma string de aspas simples sem o uso de eval ()? Estou procurando por algo que o próprio PHP fornece.

Observe: Usar strtr () é como usar algo como sprintf (). Minha pergunta é diferente da questão vinculada na possível seção duplicada desta pergunta, pois estou permitindo que a string controle como (por exemplo, por que função chama ou acessadores de propriedade) ela deseja obter o conteúdo.

questionAnswers(3)

yourAnswerToTheQuestion