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 :(得分:0)
如果我理解正确,您希望some_cool_function
将函数callback
应用于字符串'This is a $test'
。
使用变量引用回调函数将起到作用:
$cb = callback;
$test = 'something';
echo "This is a {$cb($test)}";