Zastępowanie zmiennych w ciągu
Pracuję nad wielojęzyczną stroną w PHP, aw moich językach pliki często zawierają ciągi zawierające wiele zmiennych, które zostaną później wypełnione w celu uzupełnienia zdań.
Obecnie umieszczam{VAR_NAME}
w ciągu i ręcznie zastępując każde wystąpienie jego pasującą wartością, gdy jest używana.
Więc w zasadzie:
{X} created a thread on {Y}
staje się :
Dany created a thread on Stack Overflow
Już o tym myślałemsprintf
ale uważam to za niewygodne, ponieważ zależy to od kolejności zmiennych, które mogą zmieniać się z języka na inny.
I już sprawdziłemJak zastąpić zmienną w łańcuchu wartością w php? i na razie zasadniczo używam tej metody.
Ale interesuje mnie, czy w PHP istnieje wbudowany (a może nie) wygodny sposób, biorąc pod uwagę, że w poprzednim przykładzie mam już zmienne o nazwach dokładnie takich jak X i Y, bardziej jak $ za zmienną zmienną .
Więc zamiast robić str_replace na łańcuchu, mógłbym wywołać taką funkcję:
$X = 'Dany';
$Y = 'Stack Overflow';
$lang['example'] = '{X} created a thread on {Y}';
echo parse($lang['example']);
wydrukowałbym również:
Dany created a thread on Stack Overflow
Dzięki!
Edytować
Ciągi służą jako szablony i mogą być używane wielokrotnie z różnymi wejściami.
Więc w zasadzie to robię"{$X} ... {$Y}"
nie wykona sztuczki, ponieważ stracę szablon, a łańcuch zostanie zainicjowany z początkowymi wartościami$X
i$Y
które nie są jeszcze określone.