PHP, конечно, выполняет замену переменных в строках с двойными кавычками:
$test = 'something';
echo "This is a $test";
//Output: This is a something
То, что я ищу, это замена переменных PHP, но с обратным вызовом:
function callback($key, &$value) {
$value=strtoupper($value);
}
$test = 'something';
echo some_cool_function('This is a $test', callback);
//Output: This is a SOMETHING
(Конечно, это был совершенно произвольный пример — я не собираюсь делать что-то столь же простое, как преобразование значений в верхний регистр.)
таким образом callback
затем будет вызываться для каждой переменной (или, возможно, с массивом всех переменных, таких как '$test' => 'something'
). Таким образом, я могу напрямую манипулировать и иначе работать с переменными и значениями замены, которые выполняет PHP.
Я знаю, что нечто подобное можно сделать с помощью регулярных выражений с обратным вызовом и тому подобным. Однако в том, как PHP обрабатывает переменные, такие как $test[0]
сложный синтаксис ({ }
) и т. д., с которыми можно работать.
Предоставляет ли PHP свой внутренний синтаксический анализатор строк, используемый для строк в двойных кавычках?
Если я правильно понимаю, вы собираетесь some_cool_function
применил бы функцию callback
в строку 'This is a $test'
,
Ссылка на функцию обратного вызова с помощью переменной сделает свое дело:
$cb = callback;
$test = 'something';
echo "This is a {$cb($test)}";
Других решений пока нет …