Я пытаюсь позволить пользователю определить значения для передачи в строку.
Как я могу динамически сшивать некоторые переменные с шаблоном без использования eval () или необходимости статически определять все переменные?
Я ищу решение для маленьких отпечатков. Не включать весь шаблонизатор или библиотеку.
<?php
// Create a template
$tpl = " ... {$var['a']} ... "; // User defined content
// State variables
$var = [
'a' => 1,
'b' => 2,
];
// Stitch
echo $tpl;
Таким образом, PHP может выполнить позднюю обработку замены псевдонима / переменной.
Я подумал, что http_build_query () может быть полезно генерировать кучу псевдонимов для использования с strtr (). Но он не чувствует себя чистым или неуместным делать это таким образом.
Что-то вроде этого с поддержкой рекурсивных массивов подойдет:
<?php
echo strtr(' ... {a.1} ...', $var);