PHP双引号字符串解析器

时间:2015-08-28 15:04:24

标签: php parsing double-quotes

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是否以某种方式公开了用于双引号字符串的内部字符串解析器?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望some_cool_function将函数callback应用于字符串'This is a $test'

使用变量引用回调函数将起到作用:

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