синтаксический анализатор строк PHP с двойными кавычками

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 свой внутренний синтаксический анализатор строк, используемый для строк в двойных кавычках?

0

Решение

Если я правильно понимаю, вы собираетесь some_cool_function применил бы функцию callback в строку 'This is a $test',

Ссылка на функцию обратного вызова с помощью переменной сделает свое дело:

$cb = callback;
$test = 'something';
echo "This is a {$cb($test)}";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]