Como interpolar manualmente uma string? [duplicado]
Esta pergunta já tem uma resposta aqui:
Como substituir variável em string com valor em php? 10 respostasA ú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.