如何重新解析包含变量名称的变量字符串?

时间:2019-04-20 22:29:04

标签: php

$a = 'i am a $b'; // declared before $b is declared

function x(....) {
    global $a;
    $b = 'boy';
    $c = '{$a}'; // i know this doesn't work. how can I make it work?
}

我希望$ c返回“我是男孩”

这是我的问题的一个简单示例。在实际情况下,涉及许多变量。有简单的解决方法吗?

1 个答案:

答案 0 :(得分:1)

这是功能派上用场的地方。它们接受参数并返回一些已编译的值。

// create named function
function namedFn($b) {
    return "i am a $b";
}
//  or anonymous
$f = function ($b) {return "i am a $b"; };

// call function and pass $b as argument
$b = 'boy';
echo namedFn($b);
echo $f($b);

如果您确实需要使用变量的内容重新解析某些字符串,只需使用str_ireplace

$a = 'i am a $b';
echo str_ireplace('$b', $b, $a); // $search , $replace , $subject